{"version":3,"file":"static/js/e334d46d04093ffb8c31.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/../../src/index.ts?0e3e","webpack://Msdyn365.Commerce.Online/../../src/DataActions/StoreOperationsDataActions.g.ts?85ae","webpack://Msdyn365.Commerce.Online/../../src/DataActions/ProductsDataActions.g.ts?8ea2","webpack://Msdyn365.Commerce.Online/../../src/Entities/CommerceTypes.g.ts?34ee","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CartsDataActions.g.ts?f2f8","webpack://Msdyn365.Commerce.Online/../src/retail-action.ts?fc97","webpack://Msdyn365.Commerce.Online/../src/DataServiceQuery.ts?8aab","webpack://Msdyn365.Commerce.Online/../../src/DataActions/OrgUnitsDataActions.g.ts?c88f","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.array.sort.js?f005","webpack://Msdyn365.Commerce.Online/../../src/DataActions/ProductListsDataActions.g.ts?81df","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/environment-ff-version.js?f461","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/environment-is-ie-or-edge.js?1053","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/environment-webkit-version.js?f8b1","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CustomersDataActions.g.ts?081a","webpack://Msdyn365.Commerce.Online/../../src/DataActions/BusinessPartnerUsersDataActions.g.ts?c8e5","webpack://Msdyn365.Commerce.Online/../../src/action-registrar.ts?ed12","webpack://Msdyn365.Commerce.Online/../../src/create-data-action.vnext.ts?cb4f","webpack://Msdyn365.Commerce.Online/../../src/wrap-data-action.ts?c6a2","webpack://Msdyn365.Commerce.Online/../../src/action-error.ts?76a5","webpack://Msdyn365.Commerce.Online/../../src/action-runtime-utils.ts?df0b","webpack://Msdyn365.Commerce.Online/../../../src/cache/retail-cache-helper.ts?35f4","webpack://Msdyn365.Commerce.Online/../../src/event-emitter.ts?da67","webpack://Msdyn365.Commerce.Online/../../src/action-executor.ts?e3c4","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-catalogs.ts?b35c","webpack://Msdyn365.Commerce.Online/../../src/helpers.ts?e5d2","webpack://Msdyn365.Commerce.Online/../../src/action-context.ts?0ab9","webpack://Msdyn365.Commerce.Online/../../src/mock-helper.ts?6126","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-media-locations.ts?b49d","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-additional-media-locations.ts?d6e0","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-customer.ts?6b9b","webpack://Msdyn365.Commerce.Online/../../src/DataActions/BusinessPartnersDataActions.g.ts?502e","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.finally.js?e4b4","webpack://Msdyn365.Commerce.Online/../../src/extensions/StringExtensions.ts?6e3d","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.parse-float.js?84d3","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CommerceListsDataActions.g.ts?d44a","webpack://Msdyn365.Commerce.Online/../../src/exceptions/ProxyErrorSDK.ts?c06e","webpack://Msdyn365.Commerce.Online/../../src/exceptions/ProxyError.ts?f6d3","webpack://Msdyn365.Commerce.Online/../../src/logging/ConsoleEventWriter.ts?1638","webpack://Msdyn365.Commerce.Online/../../src/logging/RetailLogger.ts?9e7e","webpack://Msdyn365.Commerce.Online/../../src/logging/Tracer.ts?faf4","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/number-parse-float.js?9778","webpack://Msdyn365.Commerce.Online/../../src/DataActions/SalesOrdersDataActions.g.ts?4e0c","webpack://Msdyn365.Commerce.Online/../../src/ICache.ts?b706","webpack://Msdyn365.Commerce.Online/../../src/cache-utils.ts?471a","webpack://Msdyn365.Commerce.Online/../../src/request-cache.ts?b274","webpack://Msdyn365.Commerce.Online/../src/async-result.ts?1ea5","webpack://Msdyn365.Commerce.Online/../../src/exceptions/ErrorHelper.ts?deca","webpack://Msdyn365.Commerce.Online/../../src/externals/helper.ts?18b4","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CatalogsDataActions.g.ts?8b5c","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/action-internal/node_modules/uuid/v1.js?088e","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/action-internal/node_modules/uuid/lib/rng-browser.js?6f88","webpack://Msdyn365.Commerce.Online/../../src/exceptions/ErrorParser.ts?d883","webpack://Msdyn365.Commerce.Online/../../src/externals/DataJS.New.ts?f131","webpack://Msdyn365.Commerce.Online/../../src/externals/handler.ts?a98d","webpack://Msdyn365.Commerce.Online/../../src/DataActions/RecommendationsDataActions.g.ts?31c0","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/action-internal/node_modules/uuid/lib/bytesToUuid.js?8945","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/delete-property-or-throw.js?ca65","webpack://Msdyn365.Commerce.Online/../../src/Interfaces/ICache.ts?0279","webpack://Msdyn365.Commerce.Online/../src/DataServiceRequest.ts?423e","webpack://Msdyn365.Commerce.Online/../../src/DataActions/ScanResultsDataActions.g.ts?42cd"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\n\nexport * from '@msdyn365-commerce/core-internal';\nexport { ITelemetry, LogLevel, TelemetryEvent, TelemetryEventContent } from '@msdyn365-commerce/telemetry-internal';\nexport {\n    ActionContext,\n    buildHydratedMockActionContext,\n    createDataAction,\n    createObservableDataAction,\n    createDataActionHook,\n    getCatalogName,\n    getMediaLocationsForProductAction,\n    MediaLocationsInput,\n    MediaLocationType,\n    getAdditionalMediaLocationsForProductAction,\n    getCustomerActionDataAction,\n    GetCustomerInput,\n    createGetCustomerInput\n} from '@msdyn365-commerce/action-internal';\nexport * from '@msdyn365-commerce/retail-proxy/dist/async-result';\nexport * from '@msdyn365-commerce/retail-proxy/dist/data-types';\n// Workaround to export ProudctList type found in retail-proxy to add additional typed properties so that users dont have to\n// update their retail-proxy to take advantage of these new typed properties\nexport interface IProductList {\n    products: ProductSearchResult[];\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    listMetadata: any;\n    listType: string;\n    recommendationListId: string;\n    discountIds?: string[];\n}\n\nexport default msdyn365Commerce;\n","\n    // <auto-generated />\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { DeliveryOption, Affiliation, ReasonCodeLine, DiscountsSearchCriteria, Promotion, PaymentMerchantInformation, StoreSafe, ShiftReconciliationLineRetrievalCriteria, ShiftReconciliationLine, ReceiptMask, SearchSuggestionCriteria, SearchSuggestion, DeviceActivationResult, CreateHardwareStationTokenResult, ValidateHardwareStationTokenResult, Barcode, ButtonGrid, GetButtonGridsByIdsCriteria, MediaBlob, CardTypeInfo, CityInfo, CountryRegionInfo, OnlineChannel, CountyInfo, CreditMemo, TerminalDataDownloadRequestInfo, DataDownloadParameters, TerminalDataUploadRequestInfo, DataUploadParameters, DownloadSession, OfflineTerminalState, NumberSequenceSeedData, ReceiptNumberResetInfo, LoyaltyRewardPointActivity, CurrencyRequest, CurrencyAmount, DiscountCode, DistrictInfo, HardwareStationProfile, HardwareProfile, LocalizedString, OperationPermission, ReasonCode, CommerceProperty, ReportDataSet, IncomeExpenseAccount, StateProvinceInfo, ZipCodeInfo, KitTransaction, LoyaltyCard, LoyaltyCardSearchCriteria, LoyaltyCardTransaction, TransactionSearchCriteria, Transaction, GiftCard, NonSalesTransaction, DropAndDeclareTransaction, TaxOverride, CustomerBalances, NameValuePair, LinkToExistingCustomerResult, OfflineSyncStatsLine, Shift, StorageAccessToken, Framework, TaskGuidesSearchResult, Recording, AttributeDefinitionCriteria, AttributeDefinition, AttributeGroupDefinitionCriteria, AttributeGroupDefinition, FiscalTransaction, SalesOrder, AuditEvent, InventoryAvailableToPromise, NotificationItem, PurchaseHistorySearchCriteria, PurchaseHistory, FiscalIntegrationDocumentRetrievalCriteria, FiscalIntegrationDocument, FiscalIntegrationRegistrationResult, FiscalIntegrationRegistrationProcess, FiscalIntegrationSupportedEvents, FiscalIntegrationTechnicalProfile, FiscalIntegrationFiscalRegistrationProcessSummary, FiscalIntegrationTechnicalProfileSearchCriteria, FiscalIntegrationServiceInfo, FiscalIntegrationServiceStatus, FiscalIntegrationServiceCommunicationResult, FeatureState, FiscalIntegrationSequentialSignatureData, PickupTimeslotAvailabilitySearchCriteria, PickupTimeslotAvailability, Cart, VendorSearchCriteria, Vendor, VendorValidationResult, BusinessVerticalsIndia, CopilotResponse, OperationalInsightsConfiguration, CashDeclaration, CustomerGroup, ChannelDeliveryOptionConfiguration, ChannelIdentity, OnlineChannelAzureB2CConfiguration, ChannelSearchCriteria, EnvironmentConfiguration, OrderManagementConfiguration, PaymentConfiguration, SearchConfiguration, ExtensionPackageDefinition, ExtensionProfile, DeviceConfiguration, VisualProfile, SupportedLanguage, SalesTaxGroup, TenderType, UnitOfMeasure, Currency, CommissionSalesGroup, ChannelInventoryConfiguration, ChannelMerchandisingConfiguration, ChannelPurchaseConfiguration, InventoryJournalNameSearchCriteria, InventoryJournalName, Device, UserDefinedSecretCertificateResult, ExtensibleEnumerationContainer, AddressPurpose, ReturnPolicy, EmailReceiptSettings, FiscalIntegrationComplianceResult, } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    function storeQuery(): DataServiceQuery {\n    return new DataServiceQuery();\n    }\n    \n      export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDeliveryOptions', false, \n            'DeliveryOptionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'DeliveryOption'}, { });\n      }\n\n      export function getDeliveryOptionsAsync(context: IContext):AsyncResult<DeliveryOption[]> {\n        const request = createGetDeliveryOptionsInput(context.queryResultSettings);\n        return executeAction<DeliveryOption[]>(request, context);\n      }\n  \n      export function createRoundAmountByTenderTypeInput(amount: number, tenderTypeId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('RoundAmountByTenderType', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {amount: amount, tenderTypeId: tenderTypeId });\n      }\n\n      export function roundAmountByTenderTypeAsync(context: IContext, amount: number, tenderTypeId?: string | null):AsyncResult<number> {\n        const request = createRoundAmountByTenderTypeInput(amount, tenderTypeId);\n        return executeAction<number>(request, context);\n      }\n  \n      export function createGetAffiliationsByNameInput(queryResultSettings: IQueryResultSettings, affiliationNames?: string[] | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAffiliationsByName', true, \n            'AffiliationClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, {affiliationNames: affiliationNames });\n      }\n\n      export function getAffiliationsByNameAsync(context: IContext, affiliationNames?: string[] | null):AsyncResult<Affiliation[]> {\n        const request = createGetAffiliationsByNameInput(context.queryResultSettings, affiliationNames);\n        return executeAction<Affiliation[]>(request, context);\n      }\n  \n      export function createVoidSuspendedTransactionsInput(suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('VoidSuspendedTransactions', true, '', '', { bypassCache: 'get', returnEntity: ''}, {suspendedCartIds: suspendedCartIds, shiftId: shiftId, shiftTerminalId: shiftTerminalId, reasonCodeLines: reasonCodeLines });\n      }\n\n      export function voidSuspendedTransactionsAsync(context: IContext, suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult<NullResult> {\n        const request = createVoidSuspendedTransactionsInput(suspendedCartIds, shiftId, shiftTerminalId, reasonCodeLines);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: DiscountsSearchCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, \n            'PromotionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'Promotion'}, {searchCriteria: searchCriteria });\n      }\n\n      export function getAvailablePromotionsAsync(context: IContext, searchCriteria?: DiscountsSearchCriteria | null):AsyncResult<Promotion[]> {\n        const request = createGetAvailablePromotionsInput(context.queryResultSettings, searchCriteria);\n        return executeAction<Promotion[]>(request, context);\n      }\n  \n      export function createGetMerchantPropertiesByServiceAccountIdInput(queryResultSettings: IQueryResultSettings, serviceAccountIds?: string[] | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetMerchantPropertiesByServiceAccountId', true, \n            'PaymentMerchantInformationClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {serviceAccountIds: serviceAccountIds });\n      }\n\n      export function getMerchantPropertiesByServiceAccountIdAsync(context: IContext, serviceAccountIds?: string[] | null):AsyncResult<PaymentMerchantInformation[]> {\n        const request = createGetMerchantPropertiesByServiceAccountIdInput(context.queryResultSettings, serviceAccountIds);\n        return executeAction<PaymentMerchantInformation[]>(request, context);\n      }\n  \n      export function createGetStoreSafesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetStoreSafes', true, \n            'StoreSafeClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'StoreSafe'}, { });\n      }\n\n      export function getStoreSafesAsync(context: IContext):AsyncResult<StoreSafe[]> {\n        const request = createGetStoreSafesInput(context.queryResultSettings);\n        return executeAction<StoreSafe[]>(request, context);\n      }\n  \n      export function createGetShiftReconciliationLinesInput(queryResultSettings: IQueryResultSettings, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetShiftReconciliationLines', true, \n            'ShiftReconciliationLineClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ShiftReconciliationLine'}, {shiftReconciliationLineRetrievalCriteria: shiftReconciliationLineRetrievalCriteria });\n      }\n\n      export function getShiftReconciliationLinesAsync(context: IContext, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null):AsyncResult<ShiftReconciliationLine[]> {\n        const request = createGetShiftReconciliationLinesInput(context.queryResultSettings, shiftReconciliationLineRetrievalCriteria);\n        return executeAction<ShiftReconciliationLine[]>(request, context);\n      }\n  \n      export function createReconcileLinesInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('ReconcileLines', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines, Description: description });\n      }\n\n      export function reconcileLinesAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null):AsyncResult<NullResult> {\n        const request = createReconcileLinesInput(shiftReconciliationLines, description);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createUndoReconciliationInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('UndoReconciliation', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines });\n      }\n\n      export function undoReconciliationAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null):AsyncResult<NullResult> {\n        const request = createUndoReconciliationInput(shiftReconciliationLines);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createGetReceiptMasksInput(queryResultSettings: IQueryResultSettings, receiptTransactionType?: number | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetReceiptMasks', true, \n            'ReceiptMaskClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ReceiptMask'}, {receiptTransactionType: receiptTransactionType });\n      }\n\n      export function getReceiptMasksAsync(context: IContext, receiptTransactionType?: number | null):AsyncResult<ReceiptMask[]> {\n        const request = createGetReceiptMasksInput(context.queryResultSettings, receiptTransactionType);\n        return executeAction<ReceiptMask[]>(request, context);\n      }\n  \n      export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, searchSuggestionCriteria?: SearchSuggestionCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetSearchSuggestions', true, \n            'SearchSuggestionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {searchSuggestionCriteria: searchSuggestionCriteria });\n      }\n\n      export function getSearchSuggestionsAsync(context: IContext, searchSuggestionCriteria?: SearchSuggestionCriteria | null):AsyncResult<SearchSuggestion[]> {\n        const request = createGetSearchSuggestionsInput(context.queryResultSettings, searchSuggestionCriteria);\n        return executeAction<SearchSuggestion[]>(request, context);\n      }\n  \n      export function createStartSessionInput(transactionId: string | null, overrideSession?: boolean): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('StartSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId, overrideSession: overrideSession });\n      }\n\n      export function startSessionAsync(context: IContext, transactionId: string | null, overrideSession?: boolean):AsyncResult<NullResult> {\n        const request = createStartSessionInput(transactionId, overrideSession);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createEndSessionInput(transactionId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('EndSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n      }\n\n      export function endSessionAsync(context: IContext, transactionId?: string | null):AsyncResult<NullResult> {\n        const request = createEndSessionInput(transactionId);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createActivateDeviceInput(deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('ActivateDevice', true, \n            'DeviceActivationResultClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, forceActivate: forceActivate, deviceType: deviceType });\n      }\n\n      export function activateDeviceAsync(context: IContext, deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null):AsyncResult<DeviceActivationResult> {\n        const request = createActivateDeviceInput(deviceNumber, terminalId, deviceId, forceActivate, deviceType);\n        return executeAction<DeviceActivationResult>(request, context);\n      }\n  \n      export function createMassActivateDeviceInput(deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('MassActivateDevice', true, \n            'DeviceActivationResultClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, deviceType: deviceType });\n      }\n\n      export function massActivateDeviceAsync(context: IContext, deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null):AsyncResult<DeviceActivationResult> {\n        const request = createMassActivateDeviceInput(deviceNumber, terminalId, deviceId, deviceType);\n        return executeAction<DeviceActivationResult>(request, context);\n      }\n  \n      export function createDeactivateDeviceInput(transactionId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('DeactivateDevice', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n      }\n\n      export function deactivateDeviceAsync(context: IContext, transactionId?: string | null):AsyncResult<NullResult> {\n        const request = createDeactivateDeviceInput(transactionId);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createCreateHardwareStationTokenInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('CreateHardwareStationToken', true, \n            'CreateHardwareStationTokenResultClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'CreateHardwareStationTokenResult'}, { });\n      }\n\n      export function createHardwareStationTokenAsync(context: IContext):AsyncResult<CreateHardwareStationTokenResult> {\n        const request = createCreateHardwareStationTokenInput();\n        return executeAction<CreateHardwareStationTokenResult>(request, context);\n      }\n  \n      export function createValidateHardwareStationTokenInput(deviceNumber?: string | null, hardwareStationToken?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('ValidateHardwareStationToken', true, \n            'ValidateHardwareStationTokenResultClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'ValidateHardwareStationTokenResult'}, {deviceNumber: deviceNumber, hardwareStationToken: hardwareStationToken });\n      }\n\n      export function validateHardwareStationTokenAsync(context: IContext, deviceNumber?: string | null, hardwareStationToken?: string | null):AsyncResult<ValidateHardwareStationTokenResult> {\n        const request = createValidateHardwareStationTokenInput(deviceNumber, hardwareStationToken);\n        return executeAction<ValidateHardwareStationTokenResult>(request, context);\n      }\n  \n      export function createGetBarcodeByIdInput(barcodeId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetBarcodeById', true, \n            'BarcodeClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'Barcode'}, {barcodeId: barcodeId });\n      }\n\n      export function getBarcodeByIdAsync(context: IContext, barcodeId?: string | null):AsyncResult<Barcode> {\n        const request = createGetBarcodeByIdInput(barcodeId);\n        return executeAction<Barcode>(request, context);\n      }\n  \n      export function createGetButtonGridByIdInput(buttonGridId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetButtonGridById', true, \n            'ButtonGridClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {buttonGridId: buttonGridId });\n      }\n\n      export function getButtonGridByIdAsync(context: IContext, buttonGridId?: string | null):AsyncResult<ButtonGrid> {\n        const request = createGetButtonGridByIdInput(buttonGridId);\n        return executeAction<ButtonGrid>(request, context);\n      }\n  \n      export function createGetButtonGridsWithoutImageInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetButtonGridsWithoutImage', true, \n            'ButtonGridClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n      }\n\n      export function getButtonGridsWithoutImageAsync(context: IContext, height: number, width: number):AsyncResult<ButtonGrid[]> {\n        const request = createGetButtonGridsWithoutImageInput(context.queryResultSettings, height, width);\n        return executeAction<ButtonGrid[]>(request, context);\n      }\n  \n      export function createGetButtonGridsByIdsInput(queryResultSettings: IQueryResultSettings, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetButtonGridsByIds', true, \n            'ButtonGridClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {getButtonGridsByIdsCriteria: getButtonGridsByIdsCriteria });\n      }\n\n      export function getButtonGridsByIdsAsync(context: IContext, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null):AsyncResult<ButtonGrid[]> {\n        const request = createGetButtonGridsByIdsInput(context.queryResultSettings, getButtonGridsByIdsCriteria);\n        return executeAction<ButtonGrid[]>(request, context);\n      }\n  \n      export function createGetImageBlobsByPictureIdsInput(queryResultSettings: IQueryResultSettings, pictureIds: number[]): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetImageBlobsByPictureIds', true, \n            'MediaBlobClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {pictureIds: pictureIds });\n      }\n\n      export function getImageBlobsByPictureIdsAsync(context: IContext, pictureIds: number[]):AsyncResult<MediaBlob[]> {\n        const request = createGetImageBlobsByPictureIdsInput(context.queryResultSettings, pictureIds);\n        return executeAction<MediaBlob[]>(request, context);\n      }\n  \n      export function createGetCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCardTypes', true, \n            'CardTypeInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CardTypeInfo'}, { });\n      }\n\n      export function getCardTypesAsync(context: IContext):AsyncResult<CardTypeInfo[]> {\n        const request = createGetCardTypesInput(context.queryResultSettings);\n        return executeAction<CardTypeInfo[]>(request, context);\n      }\n  \n      export function createResolveCardTypesInput(queryResultSettings: IQueryResultSettings, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('ResolveCardTypes', true, \n            'CardTypeInfoClass'\n          , 'true', { bypassCache: 'get', returnEntity: 'CardTypeInfo'}, {cardNumberPrefix: cardNumberPrefix, cardType: cardType, paymentToken: paymentToken });\n      }\n\n      export function resolveCardTypesAsync(context: IContext, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null):AsyncResult<CardTypeInfo[]> {\n        const request = createResolveCardTypesInput(context.queryResultSettings, cardNumberPrefix, cardType, paymentToken);\n        return executeAction<CardTypeInfo[]>(request, context);\n      }\n  \n      export function createGetSupportedPaymentCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetSupportedPaymentCardTypes', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, { });\n      }\n\n      export function getSupportedPaymentCardTypesAsync(context: IContext):AsyncResult<string[]> {\n        const request = createGetSupportedPaymentCardTypesInput(context.queryResultSettings);\n        return executeAction<string[]>(request, context);\n      }\n  \n      export function createGetCitiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCities', true, \n            'CityInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CityInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId });\n      }\n\n      export function getCitiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null):AsyncResult<CityInfo[]> {\n        const request = createGetCitiesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId);\n        return executeAction<CityInfo[]>(request, context);\n      }\n  \n      export function createGetCountryRegionsForShippingInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCountryRegionsForShipping', false, \n            'CountryRegionInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n      }\n\n      export function getCountryRegionsForShippingAsync(context: IContext):AsyncResult<CountryRegionInfo[]> {\n        const request = createGetCountryRegionsForShippingInput(context.queryResultSettings);\n        return executeAction<CountryRegionInfo[]>(request, context);\n      }\n  \n      export function createGetCountryRegionsByLanguageIdInput(queryResultSettings: IQueryResultSettings, languageId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCountryRegionsByLanguageId', true, \n            'CountryRegionInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, {languageId: languageId });\n      }\n\n      export function getCountryRegionsByLanguageIdAsync(context: IContext, languageId?: string | null):AsyncResult<CountryRegionInfo[]> {\n        const request = createGetCountryRegionsByLanguageIdInput(context.queryResultSettings, languageId);\n        return executeAction<CountryRegionInfo[]>(request, context);\n      }\n  \n      export function createGetOnlineChannelInput(channelId: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetOnlineChannel', false, \n            'OnlineChannelClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'OnlineChannel'}, {channelId: channelId });\n      }\n\n      export function getOnlineChannelAsync(context: IContext, channelId: number):AsyncResult<OnlineChannel> {\n        const request = createGetOnlineChannelInput(channelId);\n        return executeAction<OnlineChannel>(request, context);\n      }\n  \n      export function createGetCountiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCounties', true, \n            'CountyInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CountyInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId });\n      }\n\n      export function getCountiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null):AsyncResult<CountyInfo[]> {\n        const request = createGetCountiesInput(context.queryResultSettings, countryRegionId, stateProvinceId);\n        return executeAction<CountyInfo[]>(request, context);\n      }\n  \n      export function createGetCreditMemoByIdInput(creditMemoId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetCreditMemoById', true, \n            'CreditMemoClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'CreditMemo'}, {creditMemoId: creditMemoId });\n      }\n\n      export function getCreditMemoByIdAsync(context: IContext, creditMemoId?: string | null):AsyncResult<CreditMemo> {\n        const request = createGetCreditMemoByIdInput(creditMemoId);\n        return executeAction<CreditMemo>(request, context);\n      }\n  \n      export function createGetDownloadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetDownloadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n      }\n\n      export function getDownloadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult<string> {\n        const request = createGetDownloadIntervalInput(dataStoreName);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createGetTerminalDataStoreNameInput(terminalId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetTerminalDataStoreName', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId });\n      }\n\n      export function getTerminalDataStoreNameAsync(context: IContext, terminalId?: string | null):AsyncResult<string> {\n        const request = createGetTerminalDataStoreNameInput(terminalId);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createGetDownloadLinkInput(dataStoreName: string | null, downloadSessionId: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetDownloadLink', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName, downloadSessionId: downloadSessionId });\n      }\n\n      export function getDownloadLinkAsync(context: IContext, dataStoreName: string | null, downloadSessionId: number):AsyncResult<string> {\n        const request = createGetDownloadLinkInput(dataStoreName, downloadSessionId);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetDataDownloadParametersByTerminal', true, \n            'DataDownloadParametersClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'DataDownloadParameters'}, {TerminalDataDownloadRequestInfo: terminalDataDownloadRequestInfo });\n      }\n\n      export function getDataDownloadParametersByTerminalAsync(context: IContext, terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null):AsyncResult<DataDownloadParameters> {\n        const request = createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo);\n        return executeAction<DataDownloadParameters>(request, context);\n      }\n  \n      export function createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetDataUploadParametersByTerminal', true, \n            'DataUploadParametersClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'DataUploadParameters'}, {TerminalDataUploadRequestInfo: terminalDataUploadRequestInfo });\n      }\n\n      export function getDataUploadParametersByTerminalAsync(context: IContext, terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null):AsyncResult<DataUploadParameters> {\n        const request = createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo);\n        return executeAction<DataUploadParameters>(request, context);\n      }\n  \n      export function createGetDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDownloadSessions', true, \n            'DownloadSessionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n      }\n\n      export function getDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult<DownloadSession[]> {\n        const request = createGetDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n        return executeAction<DownloadSession[]>(request, context);\n      }\n  \n      export function createGetInitialDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetInitialDownloadSessions', true, \n            'DownloadSessionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n      }\n\n      export function getInitialDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult<DownloadSession[]> {\n        const request = createGetInitialDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n        return executeAction<DownloadSession[]>(request, context);\n      }\n  \n      export function createGetUploadJobDefinitionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetUploadJobDefinitions', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n      }\n\n      export function getUploadJobDefinitionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult<string[]> {\n        const request = createGetUploadJobDefinitionsInput(context.queryResultSettings, dataStoreName);\n        return executeAction<string[]>(request, context);\n      }\n  \n      export function createGetUploadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetUploadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n      }\n\n      export function getUploadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult<string> {\n        const request = createGetUploadIntervalInput(dataStoreName);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createPostOfflineTransactionsInput(offlineTransactionForMPOS?: string[] | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('PostOfflineTransactions', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {offlineTransactionForMPOS: offlineTransactionForMPOS });\n      }\n\n      export function postOfflineTransactionsAsync(context: IContext, offlineTransactionForMPOS?: string[] | null):AsyncResult<boolean> {\n        const request = createPostOfflineTransactionsInput(offlineTransactionForMPOS);\n        return executeAction<boolean>(request, context);\n      }\n  \n      export function createSetOfflineTerminalStateInput(offlineTerminalState?: OfflineTerminalState | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('SetOfflineTerminalState', true, '', '', { bypassCache: 'get', returnEntity: ''}, {offlineTerminalState: offlineTerminalState });\n      }\n\n      export function setOfflineTerminalStateAsync(context: IContext, offlineTerminalState?: OfflineTerminalState | null):AsyncResult<NullResult> {\n        const request = createSetOfflineTerminalStateInput(offlineTerminalState);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createGetRetailTrialPlanOfferInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetRetailTrialPlanOffer', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n      }\n\n      export function getRetailTrialPlanOfferAsync(context: IContext):AsyncResult<boolean> {\n        const request = createGetRetailTrialPlanOfferInput();\n        return executeAction<boolean>(request, context);\n      }\n  \n      export function createGetLatestNumberSequenceInput(queryResultSettings: IQueryResultSettings, searchLocationValue?: number | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLatestNumberSequence', true, \n            'NumberSequenceSeedDataClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'NumberSequenceSeedData'}, {searchLocationValue: searchLocationValue });\n      }\n\n      export function getLatestNumberSequenceAsync(context: IContext, searchLocationValue?: number | null):AsyncResult<NumberSequenceSeedData[]> {\n        const request = createGetLatestNumberSequenceInput(context.queryResultSettings, searchLocationValue);\n        return executeAction<NumberSequenceSeedData[]>(request, context);\n      }\n  \n      export function createGetReceiptNumberResetInfoInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetReceiptNumberResetInfo', true, \n            'ReceiptNumberResetInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ReceiptNumberResetInfo'}, { });\n      }\n\n      export function getReceiptNumberResetInfoAsync(context: IContext):AsyncResult<ReceiptNumberResetInfo[]> {\n        const request = createGetReceiptNumberResetInfoInput(context.queryResultSettings);\n        return executeAction<ReceiptNumberResetInfo[]>(request, context);\n      }\n  \n      export function createGetLoyaltyRewardPointActivityTimelineInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimeline', true, \n            'LoyaltyRewardPointActivityClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n      }\n\n      export function getLoyaltyRewardPointActivityTimelineAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult<LoyaltyRewardPointActivity[]> {\n        const request = createGetLoyaltyRewardPointActivityTimelineInput(context.queryResultSettings, cardNumber, rewardPointId);\n        return executeAction<LoyaltyRewardPointActivity[]>(request, context);\n      }\n  \n      export function createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimelineForExpiredPoints', true, \n            'LoyaltyRewardPointActivityClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n      }\n\n      export function getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult<LoyaltyRewardPointActivity[]> {\n        const request = createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(context.queryResultSettings, cardNumber, rewardPointId);\n        return executeAction<LoyaltyRewardPointActivity[]>(request, context);\n      }\n  \n      export function createCalculateTotalCurrencyAmountInput(currenciesAmount?: CurrencyRequest[] | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('CalculateTotalCurrencyAmount', true, \n            'CurrencyAmountClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'CurrencyAmount'}, {currenciesAmount: currenciesAmount });\n      }\n\n      export function calculateTotalCurrencyAmountAsync(context: IContext, currenciesAmount?: CurrencyRequest[] | null):AsyncResult<CurrencyAmount> {\n        const request = createCalculateTotalCurrencyAmountInput(currenciesAmount);\n        return executeAction<CurrencyAmount>(request, context);\n      }\n  \n      export function createGetDiscountCodeInput(discountCode?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetDiscountCode', true, \n            'DiscountCodeClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {discountCode: discountCode });\n      }\n\n      export function getDiscountCodeAsync(context: IContext, discountCode?: string | null):AsyncResult<DiscountCode> {\n        const request = createGetDiscountCodeInput(discountCode);\n        return executeAction<DiscountCode>(request, context);\n      }\n  \n      export function createGetDiscountCodesByOfferIdInput(queryResultSettings: IQueryResultSettings, offerId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDiscountCodesByOfferId', true, \n            'DiscountCodeClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {offerId: offerId });\n      }\n\n      export function getDiscountCodesByOfferIdAsync(context: IContext, offerId?: string | null):AsyncResult<DiscountCode[]> {\n        const request = createGetDiscountCodesByOfferIdInput(context.queryResultSettings, offerId);\n        return executeAction<DiscountCode[]>(request, context);\n      }\n  \n      export function createGetDiscountCodesByKeywordInput(queryResultSettings: IQueryResultSettings, keyword: string | null, activeDate: Date): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDiscountCodesByKeyword', true, \n            'DiscountCodeClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {keyword: keyword, activeDate: activeDate });\n      }\n\n      export function getDiscountCodesByKeywordAsync(context: IContext, keyword: string | null, activeDate: Date):AsyncResult<DiscountCode[]> {\n        const request = createGetDiscountCodesByKeywordInput(context.queryResultSettings, keyword, activeDate);\n        return executeAction<DiscountCode[]>(request, context);\n      }\n  \n      export function createGetDistrictsInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDistricts', true, \n            'DistrictInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'DistrictInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName });\n      }\n\n      export function getDistrictsAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null):AsyncResult<DistrictInfo[]> {\n        const request = createGetDistrictsInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName);\n        return executeAction<DistrictInfo[]>(request, context);\n      }\n  \n      export function createGetHardwareStationProfilesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetHardwareStationProfiles', true, \n            'HardwareStationProfileClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'HardwareStationProfile'}, { });\n      }\n\n      export function getHardwareStationProfilesAsync(context: IContext):AsyncResult<HardwareStationProfile[]> {\n        const request = createGetHardwareStationProfilesInput(context.queryResultSettings);\n        return executeAction<HardwareStationProfile[]>(request, context);\n      }\n  \n      export function createGetHardwareProfileByIdInput(hardwareProfileId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetHardwareProfileById', true, \n            'HardwareProfileClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'HardwareProfile'}, {hardwareProfileId: hardwareProfileId });\n      }\n\n      export function getHardwareProfileByIdAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult<HardwareProfile> {\n        const request = createGetHardwareProfileByIdInput(hardwareProfileId);\n        return executeAction<HardwareProfile>(request, context);\n      }\n  \n      export function createGetLocalizedStringsInput(queryResultSettings: IQueryResultSettings, languageId?: string | null, textId?: number | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLocalizedStrings', true, \n            'LocalizedStringClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'LocalizedString'}, {languageId: languageId, textId: textId });\n      }\n\n      export function getLocalizedStringsAsync(context: IContext, languageId?: string | null, textId?: number | null):AsyncResult<LocalizedString[]> {\n        const request = createGetLocalizedStringsInput(context.queryResultSettings, languageId, textId);\n        return executeAction<LocalizedString[]>(request, context);\n      }\n  \n      export function createGetOperationPermissionByIdInput(operationId: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetOperationPermissionById', true, \n            'OperationPermissionClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'OperationPermission'}, {operationId: operationId });\n      }\n\n      export function getOperationPermissionByIdAsync(context: IContext, operationId: number):AsyncResult<OperationPermission> {\n        const request = createGetOperationPermissionByIdInput(operationId);\n        return executeAction<OperationPermission>(request, context);\n      }\n  \n      export function createGetReasonCodesByIdInput(queryResultSettings: IQueryResultSettings, reasonCodeGroupId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetReasonCodesById', true, \n            'ReasonCodeClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, {reasonCodeGroupId: reasonCodeGroupId });\n      }\n\n      export function getReasonCodesByIdAsync(context: IContext, reasonCodeGroupId?: string | null):AsyncResult<ReasonCode[]> {\n        const request = createGetReasonCodesByIdInput(context.queryResultSettings, reasonCodeGroupId);\n        return executeAction<ReasonCode[]>(request, context);\n      }\n  \n      export function createSearchReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('SearchReportDataSet', true, \n            'ReportDataSetClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n      }\n\n      export function searchReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult<ReportDataSet> {\n        const request = createSearchReportDataSetInput(reportId, parameters);\n        return executeAction<ReportDataSet>(request, context);\n      }\n  \n      export function createGetReportDataSetByIdInput(reportId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetReportDataSetById', true, \n            'ReportDataSetClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId });\n      }\n\n      export function getReportDataSetByIdAsync(context: IContext, reportId?: string | null):AsyncResult<ReportDataSet> {\n        const request = createGetReportDataSetByIdInput(reportId);\n        return executeAction<ReportDataSet>(request, context);\n      }\n  \n      export function createGetSrsReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetSrsReportDataSet', true, \n            'ReportDataSetClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n      }\n\n      export function getSrsReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult<ReportDataSet> {\n        const request = createGetSrsReportDataSetInput(reportId, parameters);\n        return executeAction<ReportDataSet>(request, context);\n      }\n  \n      export function createGetIncomeExpenseAccountsInput(queryResultSettings: IQueryResultSettings, incomeExpenseAccountType: number): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetIncomeExpenseAccounts', true, \n            'IncomeExpenseAccountClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'IncomeExpenseAccount'}, {incomeExpenseAccountType: incomeExpenseAccountType });\n      }\n\n      export function getIncomeExpenseAccountsAsync(context: IContext, incomeExpenseAccountType: number):AsyncResult<IncomeExpenseAccount[]> {\n        const request = createGetIncomeExpenseAccountsInput(context.queryResultSettings, incomeExpenseAccountType);\n        return executeAction<IncomeExpenseAccount[]>(request, context);\n      }\n  \n      export function createGetStateProvincesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetStateProvinces', true, \n            'StateProvinceInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'StateProvinceInfo'}, {countryRegionId: countryRegionId });\n      }\n\n      export function getStateProvincesAsync(context: IContext, countryRegionId?: string | null):AsyncResult<StateProvinceInfo[]> {\n        const request = createGetStateProvincesInput(context.queryResultSettings, countryRegionId);\n        return executeAction<StateProvinceInfo[]>(request, context);\n      }\n  \n      export function createGetZipCodesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetZipCodes', true, \n            'ZipCodeInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName, district: district });\n      }\n\n      export function getZipCodesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null):AsyncResult<ZipCodeInfo[]> {\n        const request = createGetZipCodesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName, district);\n        return executeAction<ZipCodeInfo[]>(request, context);\n      }\n  \n      export function createGetAddressFromZipCodeInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, zipPostalCode?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAddressFromZipCode', true, \n            'ZipCodeInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, zipPostalCode: zipPostalCode });\n      }\n\n      export function getAddressFromZipCodeAsync(context: IContext, countryRegionId?: string | null, zipPostalCode?: string | null):AsyncResult<ZipCodeInfo[]> {\n        const request = createGetAddressFromZipCodeInput(context.queryResultSettings, countryRegionId, zipPostalCode);\n        return executeAction<ZipCodeInfo[]>(request, context);\n      }\n  \n      export function createDisassembleKitTransactionsInput(kitTransaction?: KitTransaction | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('DisassembleKitTransactions', true, \n            'KitTransactionClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'KitTransaction'}, {kitTransaction: kitTransaction });\n      }\n\n      export function disassembleKitTransactionsAsync(context: IContext, kitTransaction?: KitTransaction | null):AsyncResult<KitTransaction> {\n        const request = createDisassembleKitTransactionsInput(kitTransaction);\n        return executeAction<KitTransaction>(request, context);\n      }\n  \n      export function createIssueLoyaltyCardInput(loyaltyCard?: LoyaltyCard | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('IssueLoyaltyCard', true, \n            'LoyaltyCardClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'LoyaltyCard'}, {loyaltyCard: loyaltyCard });\n      }\n\n      export function issueLoyaltyCardAsync(context: IContext, loyaltyCard?: LoyaltyCard | null):AsyncResult<LoyaltyCard> {\n        const request = createIssueLoyaltyCardInput(loyaltyCard);\n        return executeAction<LoyaltyCard>(request, context);\n      }\n  \n      export function createGetLoyaltyCardInput(cardNumber?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetLoyaltyCard', true, \n            'LoyaltyCardClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {cardNumber: cardNumber });\n      }\n\n      export function getLoyaltyCardAsync(context: IContext, cardNumber?: string | null):AsyncResult<LoyaltyCard> {\n        const request = createGetLoyaltyCardInput(cardNumber);\n        return executeAction<LoyaltyCard>(request, context);\n      }\n  \n      export function createGetCustomerLoyaltyCardsInput(queryResultSettings: IQueryResultSettings, accountNumber?: string | null, searchCriteria?: LoyaltyCardSearchCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCustomerLoyaltyCards', true, \n            'LoyaltyCardClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {accountNumber: accountNumber, searchCriteria: searchCriteria });\n      }\n\n      export function getCustomerLoyaltyCardsAsync(context: IContext, accountNumber?: string | null, searchCriteria?: LoyaltyCardSearchCriteria | null):AsyncResult<LoyaltyCard[]> {\n        const request = createGetCustomerLoyaltyCardsInput(context.queryResultSettings, accountNumber, searchCriteria);\n        return executeAction<LoyaltyCard[]>(request, context);\n      }\n  \n      export function createGetLoyaltyCardTransactionsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLoyaltyCardTransactions', true, \n            'LoyaltyCardTransactionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCardTransaction'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n      }\n\n      export function getLoyaltyCardTransactionsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult<LoyaltyCardTransaction[]> {\n        const request = createGetLoyaltyCardTransactionsInput(context.queryResultSettings, cardNumber, rewardPointId);\n        return executeAction<LoyaltyCardTransaction[]>(request, context);\n      }\n  \n      export function createGetLoyaltyRewardPointsExpiringSoonInput(queryResultSettings: IQueryResultSettings, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointsExpiringSoon', true, \n            'LoyaltyRewardPointActivityClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId, daysToExpiry: daysToExpiry });\n      }\n\n      export function getLoyaltyRewardPointsExpiringSoonAsync(context: IContext, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number):AsyncResult<LoyaltyRewardPointActivity[]> {\n        const request = createGetLoyaltyRewardPointsExpiringSoonInput(context.queryResultSettings, cardNumber, rewardPointId, daysToExpiry);\n        return executeAction<LoyaltyRewardPointActivity[]>(request, context);\n      }\n  \n      export function createSearchJournalTransactionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: TransactionSearchCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchJournalTransactions', true, \n            'TransactionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'Transaction'}, {searchCriteria: searchCriteria });\n      }\n\n      export function searchJournalTransactionsAsync(context: IContext, searchCriteria?: TransactionSearchCriteria | null):AsyncResult<Transaction[]> {\n        const request = createSearchJournalTransactionsInput(context.queryResultSettings, searchCriteria);\n        return executeAction<Transaction[]>(request, context);\n      }\n  \n      export function createGetGiftCardInput(giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetGiftCard', true, \n            'GiftCardClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId, tenderTypeId: tenderTypeId, pin: pin, expirationMonth: expirationMonth, expirationYear: expirationYear });\n      }\n\n      export function getGiftCardAsync(context: IContext, giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null):AsyncResult<GiftCard> {\n        const request = createGetGiftCardInput(giftCardId, tenderTypeId, pin, expirationMonth, expirationYear);\n        return executeAction<GiftCard>(request, context);\n      }\n  \n      export function createGetGiftCardInquiryInput(giftCardId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetGiftCardInquiry', true, \n            'GiftCardClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId });\n      }\n\n      export function getGiftCardInquiryAsync(context: IContext, giftCardId?: string | null):AsyncResult<GiftCard> {\n        const request = createGetGiftCardInquiryInput(giftCardId);\n        return executeAction<GiftCard>(request, context);\n      }\n  \n      export function createGetNonSalesTransactionsInput(queryResultSettings: IQueryResultSettings, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetNonSalesTransactions', true, \n            'NonSalesTransactionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'NonSalesTransaction'}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId, nonSalesTenderTypeValue: nonSalesTenderTypeValue });\n      }\n\n      export function getNonSalesTransactionsAsync(context: IContext, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number):AsyncResult<NonSalesTransaction[]> {\n        const request = createGetNonSalesTransactionsInput(context.queryResultSettings, shiftId, shiftTerminalId, nonSalesTenderTypeValue);\n        return executeAction<NonSalesTransaction[]>(request, context);\n      }\n  \n      export function createCreateNonSalesTransactionInput(nonSalesTransaction?: NonSalesTransaction | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('CreateNonSalesTransaction', true, \n            'NonSalesTransactionClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'NonSalesTransaction'}, {nonSalesTransaction: nonSalesTransaction });\n      }\n\n      export function createNonSalesTransactionAsync(context: IContext, nonSalesTransaction?: NonSalesTransaction | null):AsyncResult<NonSalesTransaction> {\n        const request = createCreateNonSalesTransactionInput(nonSalesTransaction);\n        return executeAction<NonSalesTransaction>(request, context);\n      }\n  \n      export function createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction?: DropAndDeclareTransaction | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('CreateDropAndDeclareTransaction', true, \n            'DropAndDeclareTransactionClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'DropAndDeclareTransaction'}, {dropAndDeclareTransaction: dropAndDeclareTransaction });\n      }\n\n      export function createDropAndDeclareTransactionAsync(context: IContext, dropAndDeclareTransaction?: DropAndDeclareTransaction | null):AsyncResult<DropAndDeclareTransaction> {\n        const request = createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction);\n        return executeAction<DropAndDeclareTransaction>(request, context);\n      }\n  \n      export function createGetTaxOverridesInput(queryResultSettings: IQueryResultSettings, overrideBy?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetTaxOverrides', true, \n            'TaxOverrideClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'TaxOverride'}, {overrideBy: overrideBy });\n      }\n\n      export function getTaxOverridesAsync(context: IContext, overrideBy?: string | null):AsyncResult<TaxOverride[]> {\n        const request = createGetTaxOverridesInput(context.queryResultSettings, overrideBy);\n        return executeAction<TaxOverride[]>(request, context);\n      }\n  \n      export function createGetCustomerBalanceInput(accountNumber?: string | null, invoiceAccountNumber?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetCustomerBalance', true, \n            'CustomerBalancesClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'CustomerBalances'}, {accountNumber: accountNumber, invoiceAccountNumber: invoiceAccountNumber });\n      }\n\n      export function getCustomerBalanceAsync(context: IContext, accountNumber?: string | null, invoiceAccountNumber?: string | null):AsyncResult<CustomerBalances> {\n        const request = createGetCustomerBalanceInput(accountNumber, invoiceAccountNumber);\n        return executeAction<CustomerBalances>(request, context);\n      }\n  \n      export function createInitiateLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('InitiateLinkToExistingCustomer', true, \n            'LinkToExistingCustomerResultClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken, emailTemplateId: emailTemplateId, emailProperties: emailProperties });\n      }\n\n      export function initiateLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null):AsyncResult<LinkToExistingCustomerResult> {\n        const request = createInitiateLinkToExistingCustomerInput(email, activationToken, emailTemplateId, emailProperties);\n        return executeAction<LinkToExistingCustomerResult>(request, context);\n      }\n  \n      export function createFinalizeLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('FinalizeLinkToExistingCustomer', true, \n            'LinkToExistingCustomerResultClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken });\n      }\n\n      export function finalizeLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null):AsyncResult<LinkToExistingCustomerResult> {\n        const request = createFinalizeLinkToExistingCustomerInput(email, activationToken);\n        return executeAction<LinkToExistingCustomerResult>(request, context);\n      }\n  \n      export function createUnlinkFromExistingCustomerInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('UnlinkFromExistingCustomer', true, '', '', { bypassCache: 'get', returnEntity: ''}, { });\n      }\n\n      export function unlinkFromExistingCustomerAsync(context: IContext):AsyncResult<NullResult> {\n        const request = createUnlinkFromExistingCustomerInput();\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createGetOfflineSyncStatusInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOfflineSyncStatus', true, \n            'OfflineSyncStatsLineClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'OfflineSyncStatsLine'}, { });\n      }\n\n      export function getOfflineSyncStatusAsync(context: IContext):AsyncResult<OfflineSyncStatsLine[]> {\n        const request = createGetOfflineSyncStatusInput(context.queryResultSettings);\n        return executeAction<OfflineSyncStatsLine[]>(request, context);\n      }\n  \n      export function createGetOfflinePendingTransactionCountInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCount', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n      }\n\n      export function getOfflinePendingTransactionCountAsync(context: IContext):AsyncResult<number> {\n        const request = createGetOfflinePendingTransactionCountInput();\n        return executeAction<number>(request, context);\n      }\n  \n      export function createGetOfflinePendingTransactionCountByShiftInput(shiftId: number, shiftTerminalId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCountByShift', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId });\n      }\n\n      export function getOfflinePendingTransactionCountByShiftAsync(context: IContext, shiftId: number, shiftTerminalId?: string | null):AsyncResult<number> {\n        const request = createGetOfflinePendingTransactionCountByShiftInput(shiftId, shiftTerminalId);\n        return executeAction<number>(request, context);\n      }\n  \n      export function createGetOfflineOpenShiftsInput(queryResultSettings: IQueryResultSettings, filterByCurrentUser: boolean, includeAllShiftsForStore: boolean): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOfflineOpenShifts', false, \n            'ShiftClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'Shift'}, {filterByCurrentUser: filterByCurrentUser, includeAllShiftsForStore: includeAllShiftsForStore });\n      }\n\n      export function getOfflineOpenShiftsAsync(context: IContext, filterByCurrentUser: boolean, includeAllShiftsForStore: boolean):AsyncResult<Shift[]> {\n        const request = createGetOfflineOpenShiftsInput(context.queryResultSettings, filterByCurrentUser, includeAllShiftsForStore);\n        return executeAction<Shift[]>(request, context);\n      }\n  \n      export function createDeleteOfflineShiftsInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('DeleteOfflineShifts', false, '', 'false', { bypassCache: 'get', returnEntity: ''}, { });\n      }\n\n      export function deleteOfflineShiftsAsync(context: IContext):AsyncResult<boolean> {\n        const request = createDeleteOfflineShiftsInput();\n        return executeAction<boolean>(request, context);\n      }\n  \n      export function createUpdateDownloadSessionInput(downloadSession?: DownloadSession | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('UpdateDownloadSession', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {downloadSession: downloadSession });\n      }\n\n      export function updateDownloadSessionAsync(context: IContext, downloadSession?: DownloadSession | null):AsyncResult<boolean> {\n        const request = createUpdateDownloadSessionInput(downloadSession);\n        return executeAction<boolean>(request, context);\n      }\n  \n      export function createUpdateApplicationVersionInput(appVersion?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('UpdateApplicationVersion', true, '', '', { bypassCache: 'get', returnEntity: ''}, {appVersion: appVersion });\n      }\n\n      export function updateApplicationVersionAsync(context: IContext, appVersion?: string | null):AsyncResult<NullResult> {\n        const request = createUpdateApplicationVersionInput(appVersion);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createGetStorageAccessTokenForUploadInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetStorageAccessTokenForUpload', true, \n            'StorageAccessTokenClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'StorageAccessToken'}, { });\n      }\n\n      export function getStorageAccessTokenForUploadAsync(context: IContext):AsyncResult<StorageAccessToken> {\n        const request = createGetStorageAccessTokenForUploadInput();\n        return executeAction<StorageAccessToken>(request, context);\n      }\n  \n      export function createGetBusinessProcessModelLibrariesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibraries', true, \n            'FrameworkClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'Framework'}, { });\n      }\n\n      export function getBusinessProcessModelLibrariesAsync(context: IContext):AsyncResult<Framework[]> {\n        const request = createGetBusinessProcessModelLibrariesInput(context.queryResultSettings);\n        return executeAction<Framework[]>(request, context);\n      }\n  \n      export function createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId: number, hierarchyDepth: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibrary', true, \n            'FrameworkClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'Framework'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, hierarchyDepth: hierarchyDepth });\n      }\n\n      export function getBusinessProcessModelLibraryAsync(context: IContext, businessProcessModelFrameworkLineId: number, hierarchyDepth: number):AsyncResult<Framework> {\n        const request = createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId, hierarchyDepth);\n        return executeAction<Framework>(request, context);\n      }\n  \n      export function createSearchTaskGuidesByTitleInput(queryResultSettings: IQueryResultSettings, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchTaskGuidesByTitle', true, \n            'TaskGuidesSearchResultClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'TaskGuidesSearchResult'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, taskGuideSearchText: taskGuideSearchText, queryTypeValue: queryTypeValue });\n      }\n\n      export function searchTaskGuidesByTitleAsync(context: IContext, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number):AsyncResult<TaskGuidesSearchResult[]> {\n        const request = createSearchTaskGuidesByTitleInput(context.queryResultSettings, businessProcessModelFrameworkLineId, taskGuideSearchText, queryTypeValue);\n        return executeAction<TaskGuidesSearchResult[]>(request, context);\n      }\n  \n      export function createGenerateBusinessProcessModelPackageInput(taskRecording?: Recording | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GenerateBusinessProcessModelPackage', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n      }\n\n      export function generateBusinessProcessModelPackageAsync(context: IContext, taskRecording?: Recording | null):AsyncResult<string> {\n        const request = createGenerateBusinessProcessModelPackageInput(taskRecording);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createDownloadRecordingInput(businessProcessModelLineId: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('DownloadRecording', true, \n            'RecordingClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {businessProcessModelLineId: businessProcessModelLineId });\n      }\n\n      export function downloadRecordingAsync(context: IContext, businessProcessModelLineId: number):AsyncResult<Recording> {\n        const request = createDownloadRecordingInput(businessProcessModelLineId);\n        return executeAction<Recording>(request, context);\n      }\n  \n      export function createLoadRecordingFromFileInput(recordingUrl?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('LoadRecordingFromFile', true, \n            'RecordingClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {recordingUrl: recordingUrl });\n      }\n\n      export function loadRecordingFromFileAsync(context: IContext, recordingUrl?: string | null):AsyncResult<Recording> {\n        const request = createLoadRecordingFromFileInput(recordingUrl);\n        return executeAction<Recording>(request, context);\n      }\n  \n      export function createGenerateRecordingFileInput(taskRecording?: Recording | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GenerateRecordingFile', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n      }\n\n      export function generateRecordingFileAsync(context: IContext, taskRecording?: Recording | null):AsyncResult<string> {\n        const request = createGenerateRecordingFileInput(taskRecording);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createGenerateTrainingDocumentInput(taskRecording?: Recording | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GenerateTrainingDocument', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n      }\n\n      export function generateTrainingDocumentAsync(context: IContext, taskRecording?: Recording | null):AsyncResult<string> {\n        const request = createGenerateTrainingDocumentInput(taskRecording);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createGenerateRecordingBundleInput(taskRecording?: Recording | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GenerateRecordingBundle', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n      }\n\n      export function generateRecordingBundleAsync(context: IContext, taskRecording?: Recording | null):AsyncResult<string> {\n        const request = createGenerateRecordingBundleInput(taskRecording);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createUploadRecordingInput(taskRecording: Recording | null, businessProcessModelLineId: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('UploadRecording', true, '', '', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording, businessProcessModelLineId: businessProcessModelLineId });\n      }\n\n      export function uploadRecordingAsync(context: IContext, taskRecording: Recording | null, businessProcessModelLineId: number):AsyncResult<NullResult> {\n        const request = createUploadRecordingInput(taskRecording, businessProcessModelLineId);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createGetAttributeDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAttributeDefinitions', true, \n            'AttributeDefinitionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'AttributeDefinition'}, {attributeDefinitionCriteria: attributeDefinitionCriteria });\n      }\n\n      export function getAttributeDefinitionsAsync(context: IContext, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null):AsyncResult<AttributeDefinition[]> {\n        const request = createGetAttributeDefinitionsInput(context.queryResultSettings, attributeDefinitionCriteria);\n        return executeAction<AttributeDefinition[]>(request, context);\n      }\n  \n      export function createGetAttributeGroupDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAttributeGroupDefinitions', true, \n            'AttributeGroupDefinitionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'AttributeGroupDefinition'}, {attributeGroupDefinitionCriteria: attributeGroupDefinitionCriteria });\n      }\n\n      export function getAttributeGroupDefinitionsAsync(context: IContext, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null):AsyncResult<AttributeGroupDefinition[]> {\n        const request = createGetAttributeGroupDefinitionsInput(context.queryResultSettings, attributeGroupDefinitionCriteria);\n        return executeAction<AttributeGroupDefinition[]>(request, context);\n      }\n  \n      export function createSaveFiscalTransactionInput(fiscalTransaction?: FiscalTransaction | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('SaveFiscalTransaction', true, '', '', { bypassCache: 'get', returnEntity: ''}, {fiscalTransaction: fiscalTransaction });\n      }\n\n      export function saveFiscalTransactionAsync(context: IContext, fiscalTransaction?: FiscalTransaction | null):AsyncResult<NullResult> {\n        const request = createSaveFiscalTransactionInput(fiscalTransaction);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint?: SalesOrder | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('ValidatePrintReceiptCopyAllowed', true, '', '', { bypassCache: 'get', returnEntity: ''}, {salesOrderToPrint: salesOrderToPrint });\n      }\n\n      export function validatePrintReceiptCopyAllowedAsync(context: IContext, salesOrderToPrint?: SalesOrder | null):AsyncResult<NullResult> {\n        const request = createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createRegisterAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('RegisterAuditEvent', true, '', '', { bypassCache: 'get', returnEntity: ''}, {auditEvent: auditEvent });\n      }\n\n      export function registerAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult<NullResult> {\n        const request = createRegisterAuditEventInput(auditEvent);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createRegisterAndGetAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('RegisterAndGetAuditEvent', true, \n            'AuditEventClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'AuditEvent'}, {auditEvent: auditEvent });\n      }\n\n      export function registerAndGetAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult<AuditEvent> {\n        const request = createRegisterAndGetAuditEventInput(auditEvent);\n        return executeAction<AuditEvent>(request, context);\n      }\n  \n      export function createGetInventoryAvailableToPromiseInput(queryResultSettings: IQueryResultSettings, productId: number, itemId?: string | null, inventLocationId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetInventoryAvailableToPromise', true, \n            'InventoryAvailableToPromiseClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'InventoryAvailableToPromise'}, {productId: productId, itemId: itemId, inventLocationId: inventLocationId });\n      }\n\n      export function getInventoryAvailableToPromiseAsync(context: IContext, productId: number, itemId?: string | null, inventLocationId?: string | null):AsyncResult<InventoryAvailableToPromise[]> {\n        const request = createGetInventoryAvailableToPromiseInput(context.queryResultSettings, productId, itemId, inventLocationId);\n        return executeAction<InventoryAvailableToPromise[]>(request, context);\n      }\n  \n      export function createGetSalesOrdersWithNoFiscalTransactionsInput(queryResultSettings: IQueryResultSettings, storeNumber?: string | null, terminalId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetSalesOrdersWithNoFiscalTransactions', true, \n            'SalesOrderClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'SalesOrder'}, {storeNumber: storeNumber, terminalId: terminalId });\n      }\n\n      export function getSalesOrdersWithNoFiscalTransactionsAsync(context: IContext, storeNumber?: string | null, terminalId?: string | null):AsyncResult<SalesOrder[]> {\n        const request = createGetSalesOrdersWithNoFiscalTransactionsInput(context.queryResultSettings, storeNumber, terminalId);\n        return executeAction<SalesOrder[]>(request, context);\n      }\n  \n      export function createGetNotificationsInput(queryResultSettings: IQueryResultSettings, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetNotifications', true, \n            'NotificationItemClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'NotificationItem'}, {subscribedOperations: subscribedOperations, extensionProperties: extensionProperties });\n      }\n\n      export function getNotificationsAsync(context: IContext, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null):AsyncResult<NotificationItem[]> {\n        const request = createGetNotificationsInput(context.queryResultSettings, subscribedOperations, extensionProperties);\n        return executeAction<NotificationItem[]>(request, context);\n      }\n  \n      export function createAcknowledgeNotificationsInput(lastPullDateTime: Date): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('AcknowledgeNotifications', true, '', '', { bypassCache: 'get', returnEntity: ''}, {lastPullDateTime: lastPullDateTime });\n      }\n\n      export function acknowledgeNotificationsAsync(context: IContext, lastPullDateTime: Date):AsyncResult<NullResult> {\n        const request = createAcknowledgeNotificationsInput(lastPullDateTime);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createSearchPurchaseHistoryInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PurchaseHistorySearchCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchPurchaseHistory', true, \n            'PurchaseHistoryClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'PurchaseHistory'}, {searchCriteria: searchCriteria });\n      }\n\n      export function searchPurchaseHistoryAsync(context: IContext, searchCriteria?: PurchaseHistorySearchCriteria | null):AsyncResult<PurchaseHistory[]> {\n        const request = createSearchPurchaseHistoryInput(context.queryResultSettings, searchCriteria);\n        return executeAction<PurchaseHistory[]>(request, context);\n      }\n  \n      export function createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalDocument', true, \n            'FiscalIntegrationDocumentClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n      }\n\n      export function getFiscalIntegrationFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult<FiscalIntegrationDocument> {\n        const request = createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n        return executeAction<FiscalIntegrationDocument>(request, context);\n      }\n  \n      export function createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetFiscalIntegrationNonFiscalDocument', true, \n            'FiscalIntegrationDocumentClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n      }\n\n      export function getFiscalIntegrationNonFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult<FiscalIntegrationDocument> {\n        const request = createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n        return executeAction<FiscalIntegrationDocument>(request, context);\n      }\n  \n      export function createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceSetupDocument', true, \n            'FiscalIntegrationDocumentClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n      }\n\n      export function getFiscalIntegrationFiscalServiceSetupDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult<FiscalIntegrationDocument> {\n        const request = createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n        return executeAction<FiscalIntegrationDocument>(request, context);\n      }\n  \n      export function createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceReadDataDocument', true, \n            'FiscalIntegrationDocumentClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n      }\n\n      export function getFiscalIntegrationFiscalServiceReadDataDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult<FiscalIntegrationDocument> {\n        const request = createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n        return executeAction<FiscalIntegrationDocument>(request, context);\n      }\n  \n      export function createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('ProcessFiscalIntegrationFiscalServiceReadDataResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, documentToProcess: documentToProcess, connectorType: connectorType });\n      }\n\n      export function processFiscalIntegrationFiscalServiceReadDataResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null):AsyncResult<NullResult> {\n        const request = createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId, functionalityProfileGroupId, documentToProcess, connectorType);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('SaveFiscalIntegrationRegistrationResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n      }\n\n      export function saveFiscalIntegrationRegistrationResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null):AsyncResult<NullResult> {\n        const request = createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId, functionalityProfileGroupId, registrationResult, connectorType);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createGetFiscalIntegrationRegistrationProcessInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetFiscalIntegrationRegistrationProcess', true, \n            'FiscalIntegrationRegistrationProcessClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationRegistrationProcess'}, { });\n      }\n\n      export function getFiscalIntegrationRegistrationProcessAsync(context: IContext):AsyncResult<FiscalIntegrationRegistrationProcess> {\n        const request = createGetFiscalIntegrationRegistrationProcessInput();\n        return executeAction<FiscalIntegrationRegistrationProcess>(request, context);\n      }\n  \n      export function createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetChannelSupportedFiscalIntegrationEventsByGroup', true, \n            'FiscalIntegrationSupportedEventsClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSupportedEvents'}, {functionalityProfileGroupId: functionalityProfileGroupId });\n      }\n\n      export function getChannelSupportedFiscalIntegrationEventsByGroupAsync(context: IContext, functionalityProfileGroupId?: string | null):AsyncResult<FiscalIntegrationSupportedEvents> {\n        const request = createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId);\n        return executeAction<FiscalIntegrationSupportedEvents>(request, context);\n      }\n  \n      export function createGetFiscalIntegrationTechnicalProfilesInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfiles', true, \n            'FiscalIntegrationTechnicalProfileClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId });\n      }\n\n      export function getFiscalIntegrationTechnicalProfilesAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult<FiscalIntegrationTechnicalProfile[]> {\n        const request = createGetFiscalIntegrationTechnicalProfilesInput(context.queryResultSettings, hardwareProfileId);\n        return executeAction<FiscalIntegrationTechnicalProfile[]>(request, context);\n      }\n  \n      export function createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIds', true, \n            'FiscalIntegrationTechnicalProfileClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId });\n      }\n\n      export function getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null):AsyncResult<FiscalIntegrationTechnicalProfile[]> {\n        const request = createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(context.queryResultSettings, hardwareProfileId, functionalityProfileGroupId);\n        return executeAction<FiscalIntegrationTechnicalProfile[]>(request, context);\n      }\n  \n      export function createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetFiscalRegistrationProcessSummary', true, \n            'FiscalIntegrationFiscalRegistrationProcessSummaryClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationFiscalRegistrationProcessSummary'}, {hardwareProfileId: hardwareProfileId });\n      }\n\n      export function getFiscalRegistrationProcessSummaryAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult<FiscalIntegrationFiscalRegistrationProcessSummary> {\n        const request = createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId);\n        return executeAction<FiscalIntegrationFiscalRegistrationProcessSummary>(request, context);\n      }\n  \n      export function createBackupFiscalRegistrationProcessContextInput(terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('BackupFiscalRegistrationProcessContext', true, '', '', { bypassCache: 'get', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId, fiscalProcessCompleted: fiscalProcessCompleted, fiscalIntegrationSerializedContext: fiscalIntegrationSerializedContext });\n      }\n\n      export function backupFiscalRegistrationProcessContextAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null):AsyncResult<NullResult> {\n        const request = createBackupFiscalRegistrationProcessContextInput(terminalId, storeNumber, channelId, fiscalProcessCompleted, fiscalIntegrationSerializedContext);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId: string | null, storeNumber: string | null, channelId: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetActiveFiscalRegistrationProcessContextBackup', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId });\n      }\n\n      export function getActiveFiscalRegistrationProcessContextBackupAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number):AsyncResult<string> {\n        const request = createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId, storeNumber, channelId);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesBySearchCriteria', true, \n            'FiscalIntegrationTechnicalProfileClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria: fiscalIntegrationTechnicalProfileSearchCriteria });\n      }\n\n      export function getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync(context: IContext, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null):AsyncResult<FiscalIntegrationTechnicalProfile[]> {\n        const request = createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(context.queryResultSettings, hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria);\n        return executeAction<FiscalIntegrationTechnicalProfile[]>(request, context);\n      }\n  \n      export function createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetFiscalIntegrationServiceStatus', true, \n            'FiscalIntegrationServiceStatusClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationServiceStatus'}, {fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n      }\n\n      export function getFiscalIntegrationServiceStatusAsync(context: IContext, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult<FiscalIntegrationServiceStatus> {\n        const request = createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo);\n        return executeAction<FiscalIntegrationServiceStatus>(request, context);\n      }\n  \n      export function createSubmitFiscalIntegrationDocumentInput(documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('SubmitFiscalIntegrationDocument', true, \n            'FiscalIntegrationServiceCommunicationResultClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationServiceCommunicationResult'}, {documentToSubmit: documentToSubmit, fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n      }\n\n      export function submitFiscalIntegrationDocumentAsync(context: IContext, documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult<FiscalIntegrationServiceCommunicationResult> {\n        const request = createSubmitFiscalIntegrationDocumentInput(documentToSubmit, fiscalIntegrationServiceInfo);\n        return executeAction<FiscalIntegrationServiceCommunicationResult>(request, context);\n      }\n  \n      export function createGetFeatureStatesInput(queryResultSettings: IQueryResultSettings, featureNames?: string[] | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFeatureStates', true, \n            'FeatureStateClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'FeatureState'}, {featureNames: featureNames });\n      }\n\n      export function getFeatureStatesAsync(context: IContext, featureNames?: string[] | null):AsyncResult<FeatureState[]> {\n        const request = createGetFeatureStatesInput(context.queryResultSettings, featureNames);\n        return executeAction<FeatureState[]>(request, context);\n      }\n  \n      export function createGetLastFiscalIntegrationSequentialSignaturesInput(queryResultSettings: IQueryResultSettings, sequentialKeys?: string[] | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLastFiscalIntegrationSequentialSignatures', true, \n            'FiscalIntegrationSequentialSignatureDataClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSequentialSignatureData'}, {sequentialKeys: sequentialKeys });\n      }\n\n      export function getLastFiscalIntegrationSequentialSignaturesAsync(context: IContext, sequentialKeys?: string[] | null):AsyncResult<FiscalIntegrationSequentialSignatureData[]> {\n        const request = createGetLastFiscalIntegrationSequentialSignaturesInput(context.queryResultSettings, sequentialKeys);\n        return executeAction<FiscalIntegrationSequentialSignatureData[]>(request, context);\n      }\n  \n      export function createCreateFiscalTransactionInput(functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('CreateFiscalTransaction', true, \n            'FiscalTransactionClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'FiscalTransaction'}, {functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n      }\n\n      export function createFiscalTransactionAsync(context: IContext, functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number):AsyncResult<FiscalTransaction> {\n        const request = createCreateFiscalTransactionInput(functionalityProfileGroupId, registrationResult, connectorType);\n        return executeAction<FiscalTransaction>(request, context);\n      }\n  \n      export function createGetEstimatedPickupTimeslotAvailabilitiesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetEstimatedPickupTimeslotAvailabilities', true, \n            'PickupTimeslotAvailabilityClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'PickupTimeslotAvailability'}, {searchCriteria: searchCriteria });\n      }\n\n      export function getEstimatedPickupTimeslotAvailabilitiesAsync(context: IContext, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null):AsyncResult<PickupTimeslotAvailability[]> {\n        const request = createGetEstimatedPickupTimeslotAvailabilitiesInput(context.queryResultSettings, searchCriteria);\n        return executeAction<PickupTimeslotAvailability[]>(request, context);\n      }\n  \n      export function createCalculateSalesDocumentInput(salesDocument?: Cart | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('CalculateSalesDocument', true, \n            'CartClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'Cart'}, {salesDocument: salesDocument });\n      }\n\n      export function calculateSalesDocumentAsync(context: IContext, salesDocument?: Cart | null):AsyncResult<Cart> {\n        const request = createCalculateSalesDocumentInput(salesDocument);\n        return executeAction<Cart>(request, context);\n      }\n  \n      export function createSearchVendorsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: VendorSearchCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchVendors', true, \n            'VendorClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'Vendor'}, {searchCriteria: searchCriteria });\n      }\n\n      export function searchVendorsAsync(context: IContext, searchCriteria?: VendorSearchCriteria | null):AsyncResult<Vendor[]> {\n        const request = createSearchVendorsInput(context.queryResultSettings, searchCriteria);\n        return executeAction<Vendor[]>(request, context);\n      }\n  \n      export function createValidateVendorApprovedForItemInput(itemId?: string | null, vendorAccountNumber?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('ValidateVendorApprovedForItem', true, \n            'VendorValidationResultClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'VendorValidationResult'}, {itemId: itemId, vendorAccountNumber: vendorAccountNumber });\n      }\n\n      export function validateVendorApprovedForItemAsync(context: IContext, itemId?: string | null, vendorAccountNumber?: string | null):AsyncResult<VendorValidationResult> {\n        const request = createValidateVendorApprovedForItemInput(itemId, vendorAccountNumber);\n        return executeAction<VendorValidationResult>(request, context);\n      }\n  \n      export function createLocalizationIndiaGetBusinessVerticalsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('LocalizationIndiaGetBusinessVerticals', true, \n            'BusinessVerticalsIndiaClass'\n          , 'true', { bypassCache: 'get', returnEntity: 'BusinessVerticalsIndia'}, { });\n      }\n\n      export function localizationIndiaGetBusinessVerticalsAsync(context: IContext):AsyncResult<BusinessVerticalsIndia[]> {\n        const request = createLocalizationIndiaGetBusinessVerticalsInput(context.queryResultSettings);\n        return executeAction<BusinessVerticalsIndia[]>(request, context);\n      }\n  \n      export function createGetReportCopilotSummaryInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetReportCopilotSummary', true, \n            'CopilotResponseClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'CopilotResponse'}, {reportId: reportId, parameters: parameters });\n      }\n\n      export function getReportCopilotSummaryAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult<CopilotResponse> {\n        const request = createGetReportCopilotSummaryInput(reportId, parameters);\n        return executeAction<CopilotResponse>(request, context);\n      }\n  \n      export function createGetButtonGridsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetButtonGrids', false, \n            'ButtonGridClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, { });\n      }\n\n      export function getButtonGridsAsync(context: IContext):AsyncResult<ButtonGrid[]> {\n        const request = createGetButtonGridsInput(context.queryResultSettings);\n        return executeAction<ButtonGrid[]>(request, context);\n      }\n  \n      export function createGetButtonGridsByScreenSizeInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetButtonGridsByScreenSize', false, \n            'ButtonGridClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n      }\n\n      export function getButtonGridsByScreenSizeAsync(context: IContext, height: number, width: number):AsyncResult<ButtonGrid[]> {\n        const request = createGetButtonGridsByScreenSizeInput(context.queryResultSettings, height, width);\n        return executeAction<ButtonGrid[]>(request, context);\n      }\n  \n      export function createGetOperationalInsightsConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetOperationalInsightsConfiguration', false, \n            'OperationalInsightsConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'OperationalInsightsConfiguration'}, { });\n      }\n\n      export function getOperationalInsightsConfigurationAsync(context: IContext):AsyncResult<OperationalInsightsConfiguration> {\n        const request = createGetOperationalInsightsConfigurationInput();\n        return executeAction<OperationalInsightsConfiguration>(request, context);\n      }\n  \n      export function createGetCashDeclarationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCashDeclarations', false, \n            'CashDeclarationClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CashDeclaration'}, { });\n      }\n\n      export function getCashDeclarationsAsync(context: IContext):AsyncResult<CashDeclaration[]> {\n        const request = createGetCashDeclarationsInput(context.queryResultSettings);\n        return executeAction<CashDeclaration[]>(request, context);\n      }\n  \n      export function createGetCountryRegionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCountryRegions', false, \n            'CountryRegionInfoClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n      }\n\n      export function getCountryRegionsAsync(context: IContext):AsyncResult<CountryRegionInfo[]> {\n        const request = createGetCountryRegionsInput(context.queryResultSettings);\n        return executeAction<CountryRegionInfo[]>(request, context);\n      }\n  \n      export function createGetCustomerGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCustomerGroups', false, \n            'CustomerGroupClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CustomerGroup'}, { });\n      }\n\n      export function getCustomerGroupsAsync(context: IContext):AsyncResult<CustomerGroup[]> {\n        const request = createGetCustomerGroupsInput(context.queryResultSettings);\n        return executeAction<CustomerGroup[]>(request, context);\n      }\n  \n      export function createGetChannelDeliveryOptionConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetChannelDeliveryOptionConfiguration', false, \n            'ChannelDeliveryOptionConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ChannelDeliveryOptionConfiguration'}, { });\n      }\n\n      export function getChannelDeliveryOptionConfigurationAsync(context: IContext):AsyncResult<ChannelDeliveryOptionConfiguration> {\n        const request = createGetChannelDeliveryOptionConfigurationInput();\n        return executeAction<ChannelDeliveryOptionConfiguration>(request, context);\n      }\n  \n      export function createGetChannelsByTypeInput(queryResultSettings: IQueryResultSettings, channelType?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetChannelsByType', false, \n            'ChannelIdentityClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {channelType: channelType });\n      }\n\n      export function getChannelsByTypeAsync(context: IContext, channelType?: string | null):AsyncResult<ChannelIdentity[]> {\n        const request = createGetChannelsByTypeInput(context.queryResultSettings, channelType);\n        return executeAction<ChannelIdentity[]>(request, context);\n      }\n  \n      export function createGetChannelsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetChannels', false, \n            'ChannelIdentityClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, { });\n      }\n\n      export function getChannelsAsync(context: IContext):AsyncResult<ChannelIdentity[]> {\n        const request = createGetChannelsInput(context.queryResultSettings);\n        return executeAction<ChannelIdentity[]>(request, context);\n      }\n  \n      export function createGetOnlineChannelAzureB2CConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetOnlineChannelAzureB2CConfiguration', false, \n            'OnlineChannelAzureB2CConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'OnlineChannelAzureB2CConfiguration'}, { });\n      }\n\n      export function getOnlineChannelAzureB2CConfigurationAsync(context: IContext):AsyncResult<OnlineChannelAzureB2CConfiguration> {\n        const request = createGetOnlineChannelAzureB2CConfigurationInput();\n        return executeAction<OnlineChannelAzureB2CConfiguration>(request, context);\n      }\n  \n      export function createSearchChannelsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ChannelSearchCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchChannels', true, \n            'ChannelIdentityClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {searchCriteria: searchCriteria });\n      }\n\n      export function searchChannelsAsync(context: IContext, searchCriteria?: ChannelSearchCriteria | null):AsyncResult<ChannelIdentity[]> {\n        const request = createSearchChannelsInput(context.queryResultSettings, searchCriteria);\n        return executeAction<ChannelIdentity[]>(request, context);\n      }\n  \n      export function createGetEnvironmentConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetEnvironmentConfiguration', false, \n            'EnvironmentConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'EnvironmentConfiguration'}, { });\n      }\n\n      export function getEnvironmentConfigurationAsync(context: IContext):AsyncResult<EnvironmentConfiguration> {\n        const request = createGetEnvironmentConfigurationInput();\n        return executeAction<EnvironmentConfiguration>(request, context);\n      }\n  \n      export function createGetOrderManagementConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetOrderManagementConfiguration', false, \n            'OrderManagementConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'OrderManagementConfiguration'}, { });\n      }\n\n      export function getOrderManagementConfigurationAsync(context: IContext):AsyncResult<OrderManagementConfiguration> {\n        const request = createGetOrderManagementConfigurationInput();\n        return executeAction<OrderManagementConfiguration>(request, context);\n      }\n  \n      export function createGetPaymentConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetPaymentConfiguration', false, \n            'PaymentConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'PaymentConfiguration'}, { });\n      }\n\n      export function getPaymentConfigurationAsync(context: IContext):AsyncResult<PaymentConfiguration> {\n        const request = createGetPaymentConfigurationInput();\n        return executeAction<PaymentConfiguration>(request, context);\n      }\n  \n      export function createGetSearchConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetSearchConfiguration', false, \n            'SearchConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'SearchConfiguration'}, { });\n      }\n\n      export function getSearchConfigurationAsync(context: IContext):AsyncResult<SearchConfiguration> {\n        const request = createGetSearchConfigurationInput();\n        return executeAction<SearchConfiguration>(request, context);\n      }\n  \n      export function createGetExtensionPackageDefinitionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetExtensionPackageDefinitions', false, \n            'ExtensionPackageDefinitionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ExtensionPackageDefinition'}, { });\n      }\n\n      export function getExtensionPackageDefinitionsAsync(context: IContext):AsyncResult<ExtensionPackageDefinition[]> {\n        const request = createGetExtensionPackageDefinitionsInput(context.queryResultSettings);\n        return executeAction<ExtensionPackageDefinition[]>(request, context);\n      }\n  \n      export function createGetExtensionProfileInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetExtensionProfile', false, \n            'ExtensionProfileClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ExtensionProfile'}, { });\n      }\n\n      export function getExtensionProfileAsync(context: IContext):AsyncResult<ExtensionProfile> {\n        const request = createGetExtensionProfileInput();\n        return executeAction<ExtensionProfile>(request, context);\n      }\n  \n      export function createGetDeviceConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetDeviceConfiguration', false, \n            'DeviceConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'DeviceConfiguration'}, { });\n      }\n\n      export function getDeviceConfigurationAsync(context: IContext):AsyncResult<DeviceConfiguration> {\n        const request = createGetDeviceConfigurationInput();\n        return executeAction<DeviceConfiguration>(request, context);\n      }\n  \n      export function createGetVisualProfileInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetVisualProfile', false, \n            'VisualProfileClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'VisualProfile'}, { });\n      }\n\n      export function getVisualProfileAsync(context: IContext):AsyncResult<VisualProfile> {\n        const request = createGetVisualProfileInput();\n        return executeAction<VisualProfile>(request, context);\n      }\n  \n      export function createGetLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLanguages', false, \n            'SupportedLanguageClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'SupportedLanguage'}, { });\n      }\n\n      export function getLanguagesAsync(context: IContext):AsyncResult<SupportedLanguage[]> {\n        const request = createGetLanguagesInput(context.queryResultSettings);\n        return executeAction<SupportedLanguage[]>(request, context);\n      }\n  \n      export function createGetAffiliationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAffiliations', false, \n            'AffiliationClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, { });\n      }\n\n      export function getAffiliationsAsync(context: IContext):AsyncResult<Affiliation[]> {\n        const request = createGetAffiliationsInput(context.queryResultSettings);\n        return executeAction<Affiliation[]>(request, context);\n      }\n  \n      export function createGetOperationPermissionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOperationPermissions', false, \n            'OperationPermissionClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'OperationPermission'}, { });\n      }\n\n      export function getOperationPermissionsAsync(context: IContext):AsyncResult<OperationPermission[]> {\n        const request = createGetOperationPermissionsInput(context.queryResultSettings);\n        return executeAction<OperationPermission[]>(request, context);\n      }\n  \n      export function createGetReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetReasonCodes', false, \n            'ReasonCodeClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n      }\n\n      export function getReasonCodesAsync(context: IContext):AsyncResult<ReasonCode[]> {\n        const request = createGetReasonCodesInput(context.queryResultSettings);\n        return executeAction<ReasonCode[]>(request, context);\n      }\n  \n      export function createGetReturnOrderReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetReturnOrderReasonCodes', false, \n            'ReasonCodeClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n      }\n\n      export function getReturnOrderReasonCodesAsync(context: IContext):AsyncResult<ReasonCode[]> {\n        const request = createGetReturnOrderReasonCodesInput(context.queryResultSettings);\n        return executeAction<ReasonCode[]>(request, context);\n      }\n  \n      export function createGetSalesTaxGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetSalesTaxGroups', false, \n            'SalesTaxGroupClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'SalesTaxGroup'}, { });\n      }\n\n      export function getSalesTaxGroupsAsync(context: IContext):AsyncResult<SalesTaxGroup[]> {\n        const request = createGetSalesTaxGroupsInput(context.queryResultSettings);\n        return executeAction<SalesTaxGroup[]>(request, context);\n      }\n  \n      export function createGetTenderTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetTenderTypes', false, \n            'TenderTypeClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'TenderType'}, { });\n      }\n\n      export function getTenderTypesAsync(context: IContext):AsyncResult<TenderType[]> {\n        const request = createGetTenderTypesInput(context.queryResultSettings);\n        return executeAction<TenderType[]>(request, context);\n      }\n  \n      export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, \n            'UnitOfMeasureClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n      }\n\n      export function getUnitsOfMeasureAsync(context: IContext):AsyncResult<UnitOfMeasure[]> {\n        const request = createGetUnitsOfMeasureInput(context.queryResultSettings);\n        return executeAction<UnitOfMeasure[]>(request, context);\n      }\n  \n      export function createGetDiscountCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDiscountCodes', false, \n            'DiscountCodeClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, { });\n      }\n\n      export function getDiscountCodesAsync(context: IContext):AsyncResult<DiscountCode[]> {\n        const request = createGetDiscountCodesInput(context.queryResultSettings);\n        return executeAction<DiscountCode[]>(request, context);\n      }\n  \n      export function createGetCurrenciesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCurrencies', false, \n            'CurrencyClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'Currency'}, { });\n      }\n\n      export function getCurrenciesAsync(context: IContext):AsyncResult<Currency[]> {\n        const request = createGetCurrenciesInput(context.queryResultSettings);\n        return executeAction<Currency[]>(request, context);\n      }\n  \n      export function createGetCurrenciesAmountInput(queryResultSettings: IQueryResultSettings, currencyCode: string | null, amount: number): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCurrenciesAmount', false, \n            'CurrencyAmountClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CurrencyAmount'}, {currencyCode: currencyCode, amount: amount });\n      }\n\n      export function getCurrenciesAmountAsync(context: IContext, currencyCode: string | null, amount: number):AsyncResult<CurrencyAmount[]> {\n        const request = createGetCurrenciesAmountInput(context.queryResultSettings, currencyCode, amount);\n        return executeAction<CurrencyAmount[]>(request, context);\n      }\n  \n      export function createGetCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCommissionSalesGroups', false, \n            'CommissionSalesGroupClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, { });\n      }\n\n      export function getCommissionSalesGroupsAsync(context: IContext):AsyncResult<CommissionSalesGroup[]> {\n        const request = createGetCommissionSalesGroupsInput(context.queryResultSettings);\n        return executeAction<CommissionSalesGroup[]>(request, context);\n      }\n  \n      export function createSearchCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings, searchText?: string | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchCommissionSalesGroups', false, \n            'CommissionSalesGroupClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, {searchText: searchText });\n      }\n\n      export function searchCommissionSalesGroupsAsync(context: IContext, searchText?: string | null):AsyncResult<CommissionSalesGroup[]> {\n        const request = createSearchCommissionSalesGroupsInput(context.queryResultSettings, searchText);\n        return executeAction<CommissionSalesGroup[]>(request, context);\n      }\n  \n      export function createGetPaymentMerchantInformationInput(hardwareProfileId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetPaymentMerchantInformation', false, \n            'PaymentMerchantInformationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId });\n      }\n\n      export function getPaymentMerchantInformationAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult<PaymentMerchantInformation> {\n        const request = createGetPaymentMerchantInformationInput(hardwareProfileId);\n        return executeAction<PaymentMerchantInformation>(request, context);\n      }\n  \n      export function createGetPaymentPropertiesIfModifiedInput(hardwareProfileId?: string | null, merchantInformationHash?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetPaymentPropertiesIfModified', false, \n            'PaymentMerchantInformationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId, merchantInformationHash: merchantInformationHash });\n      }\n\n      export function getPaymentPropertiesIfModifiedAsync(context: IContext, hardwareProfileId?: string | null, merchantInformationHash?: string | null):AsyncResult<PaymentMerchantInformation> {\n        const request = createGetPaymentPropertiesIfModifiedInput(hardwareProfileId, merchantInformationHash);\n        return executeAction<PaymentMerchantInformation>(request, context);\n      }\n  \n      export function createGetOnlineChannelPublishStatusInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetOnlineChannelPublishStatus', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n      }\n\n      export function getOnlineChannelPublishStatusAsync(context: IContext):AsyncResult<number> {\n        const request = createGetOnlineChannelPublishStatusInput();\n        return executeAction<number>(request, context);\n      }\n  \n      export function createSetOnlineChannelPublishStatusInput(publishingStatus: number, statusMessage?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('SetOnlineChannelPublishStatus', true, '', '', { bypassCache: 'get', returnEntity: ''}, {publishingStatus: publishingStatus, statusMessage: statusMessage });\n      }\n\n      export function setOnlineChannelPublishStatusAsync(context: IContext, publishingStatus: number, statusMessage?: string | null):AsyncResult<NullResult> {\n        const request = createSetOnlineChannelPublishStatusInput(publishingStatus, statusMessage);\n        return executeAction<NullResult>(request, context);\n      }\n  \n      export function createGetInventoryConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetInventoryConfiguration', false, \n            'ChannelInventoryConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ChannelInventoryConfiguration'}, { });\n      }\n\n      export function getInventoryConfigurationAsync(context: IContext):AsyncResult<ChannelInventoryConfiguration> {\n        const request = createGetInventoryConfigurationInput();\n        return executeAction<ChannelInventoryConfiguration>(request, context);\n      }\n  \n      export function createGetMerchandisingConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetMerchandisingConfiguration', false, \n            'ChannelMerchandisingConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ChannelMerchandisingConfiguration'}, { });\n      }\n\n      export function getMerchandisingConfigurationAsync(context: IContext):AsyncResult<ChannelMerchandisingConfiguration> {\n        const request = createGetMerchandisingConfigurationInput();\n        return executeAction<ChannelMerchandisingConfiguration>(request, context);\n      }\n  \n      export function createGetPurchaseConfigurationInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetPurchaseConfiguration', false, \n            'ChannelPurchaseConfigurationClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ChannelPurchaseConfiguration'}, { });\n      }\n\n      export function getPurchaseConfigurationAsync(context: IContext):AsyncResult<ChannelPurchaseConfiguration> {\n        const request = createGetPurchaseConfigurationInput();\n        return executeAction<ChannelPurchaseConfiguration>(request, context);\n      }\n  \n      export function createSearchJournalNamesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryJournalNameSearchCriteria | null): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchJournalNames', true, \n            'InventoryJournalNameClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'InventoryJournalName'}, {searchCriteria: searchCriteria });\n      }\n\n      export function searchJournalNamesAsync(context: IContext, searchCriteria?: InventoryJournalNameSearchCriteria | null):AsyncResult<InventoryJournalName[]> {\n        const request = createSearchJournalNamesInput(context.queryResultSettings, searchCriteria);\n        return executeAction<InventoryJournalName[]>(request, context);\n      }\n  \n      export function createGetAvailableDevicesInput(queryResultSettings: IQueryResultSettings, deviceType: number): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAvailableDevices', false, \n            'DeviceClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'Device'}, {deviceType: deviceType });\n      }\n\n      export function getAvailableDevicesAsync(context: IContext, deviceType: number):AsyncResult<Device[]> {\n        const request = createGetAvailableDevicesInput(context.queryResultSettings, deviceType);\n        return executeAction<Device[]>(request, context);\n      }\n  \n      export function createGetUserDefinedSecretStringInput(secretName?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetUserDefinedSecretString', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, {secretName: secretName });\n      }\n\n      export function getUserDefinedSecretStringAsync(context: IContext, secretName?: string | null):AsyncResult<string> {\n        const request = createGetUserDefinedSecretStringInput(secretName);\n        return executeAction<string>(request, context);\n      }\n  \n      export function createGetUserDefinedSecretCertificateInput(secretName?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetUserDefinedSecretCertificate', false, \n            'UserDefinedSecretCertificateResultClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'UserDefinedSecretCertificateResult'}, {secretName: secretName });\n      }\n\n      export function getUserDefinedSecretCertificateAsync(context: IContext, secretName?: string | null):AsyncResult<UserDefinedSecretCertificateResult> {\n        const request = createGetUserDefinedSecretCertificateInput(secretName);\n        return executeAction<UserDefinedSecretCertificateResult>(request, context);\n      }\n  \n      export function createGetImageBlobInput(imageId: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetImageBlob', false, \n            'MediaBlobClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {imageId: imageId });\n      }\n\n      export function getImageBlobAsync(context: IContext, imageId: number):AsyncResult<MediaBlob> {\n        const request = createGetImageBlobInput(imageId);\n        return executeAction<MediaBlob>(request, context);\n      }\n  \n      export function createGetExtensibleEnumerationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetExtensibleEnumerations', false, \n            'ExtensibleEnumerationContainerClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'ExtensibleEnumerationContainer'}, { });\n      }\n\n      export function getExtensibleEnumerationsAsync(context: IContext):AsyncResult<ExtensibleEnumerationContainer[]> {\n        const request = createGetExtensibleEnumerationsInput(context.queryResultSettings);\n        return executeAction<ExtensibleEnumerationContainer[]>(request, context);\n      }\n  \n      export function createGetAddressPurposesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAddressPurposes', false, \n            'AddressPurposeClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'AddressPurpose'}, { });\n      }\n\n      export function getAddressPurposesAsync(context: IContext):AsyncResult<AddressPurpose[]> {\n        const request = createGetAddressPurposesInput(context.queryResultSettings);\n        return executeAction<AddressPurpose[]>(request, context);\n      }\n  \n      export function createGetReturnPolicyInput(): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetReturnPolicy', false, \n            'ReturnPolicyClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'ReturnPolicy'}, { });\n      }\n\n      export function getReturnPolicyAsync(context: IContext):AsyncResult<ReturnPolicy> {\n        const request = createGetReturnPolicyInput();\n        return executeAction<ReturnPolicy>(request, context);\n      }\n  \n      export function createGetEmailReceiptSettingsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        const query = storeQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetEmailReceiptSettings', false, \n            'EmailReceiptSettingsClass'\n          , 'true', { bypassCache: 'none', returnEntity: 'EmailReceiptSettings'}, { });\n      }\n\n      export function getEmailReceiptSettingsAsync(context: IContext):AsyncResult<EmailReceiptSettings[]> {\n        const request = createGetEmailReceiptSettingsInput(context.queryResultSettings);\n        return executeAction<EmailReceiptSettings[]>(request, context);\n      }\n  \n      export function createCheckFiscalIntegrationComplianceInput(hardwareProfileId?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('CheckFiscalIntegrationCompliance', false, \n            'FiscalIntegrationComplianceResultClass'\n          , 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationComplianceResult'}, {hardwareProfileId: hardwareProfileId });\n      }\n\n      export function checkFiscalIntegrationComplianceAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult<FiscalIntegrationComplianceResult> {\n        const request = createCheckFiscalIntegrationComplianceInput(hardwareProfileId);\n        return executeAction<FiscalIntegrationComplianceResult>(request, context);\n      }\n  \n      export function createGetCustomerInsightsCopilotSummaryInput(customerAccountNumber?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetCustomerInsightsCopilotSummary', false, \n            'CopilotResponseClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'CopilotResponse'}, {customerAccountNumber: customerAccountNumber });\n      }\n\n      export function getCustomerInsightsCopilotSummaryAsync(context: IContext, customerAccountNumber?: string | null):AsyncResult<CopilotResponse> {\n        const request = createGetCustomerInsightsCopilotSummaryInput(customerAccountNumber);\n        return executeAction<CopilotResponse>(request, context);\n      }\n  \n      export function createGetProductCopilotSummaryInput(productId: number): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetProductCopilotSummary', false, \n            'CopilotResponseClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'CopilotResponse'}, {productId: productId });\n      }\n\n      export function getProductCopilotSummaryAsync(context: IContext, productId: number):AsyncResult<CopilotResponse> {\n        const request = createGetProductCopilotSummaryInput(productId);\n        return executeAction<CopilotResponse>(request, context);\n      }\n  \n      export function createGetCustomerTimelineCopilotSummaryInput(customerAccountNumber?: string | null): IDataServiceRequest {\n        const query = storeQuery();\n        return query.createDataServiceRequestForOperation('GetCustomerTimelineCopilotSummary', false, \n            'CopilotResponseClass'\n          , 'false', { bypassCache: 'none', returnEntity: 'CopilotResponse'}, {customerAccountNumber: customerAccountNumber });\n      }\n\n      export function getCustomerTimelineCopilotSummaryAsync(context: IContext, customerAccountNumber?: string | null):AsyncResult<CopilotResponse> {\n        const request = createGetCustomerTimelineCopilotSummaryInput(customerAccountNumber);\n        return executeAction<CopilotResponse>(request, context);\n      }\n  \n    ","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { Product, ProductSearchCriteria, ProductRefiner, ProductDimension, ProductVariantResolutionOnKitSelectionContext, ProductDimensionValue, ProductDimensionAvailabilitySearchCriteria, ProductDimensionValueInventoryAvailability, SimpleProduct, ComponentInSlotRelation, ProductComparisonLine, ProductSearchResult, ProductRefinerValue, Address, ProductDeliveryOptions, ChangedProductsSearchCriteria, ReadChangedProductsSession, DeletedListingsResult, AssortedProductIdentity, ProductExistenceCriteria, ProductExistenceId, ProductRating, ProductAssortmentInterval, ListingPublishStatus, AttributeProduct, MediaLocationSearchCriteria, MediaLocation, ProductPrice, ProductAvailableQuantity, ProjectionDomain, AffiliationLoyaltyTier, PriceLookupContext, ProductPromotion, ProductComponent, SearchSuggestion, CategoryPathLookup, CategoryPathResult, UnitOfMeasure, UnitOfMeasureSearchCriteria, ProductUnitOfMeasure, ProductLookupClause, AttributeValue, MediaBlob, ProductRelationType, ProductWarrantiesMapping, ProductWarehouse, ProductWarehouseInventoryInformation, ProductWarehouseQuantity, UpdateProductWarehouseAvailabilityResult, InventoryAvailabilitySearchCriteria } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function productsQuery(recordId?: number): DataServiceQuery {\n        var key = (recordId) ? { RecordId: recordId } : null;\n        return new DataServiceQuery(\"Products\", \"Product\", \"ProductClass\", key);\n    }\n    \n    export function createCreateInput(entity: Product): IDataServiceRequest {\n        return productsQuery().create(entity);\n    }\n\n    export function createProductAsync(context: IContext, entity: Product): AsyncResult<Product> {\n        const request = createCreateInput(entity);\n        return executeAction<Product>(request, context);\n    }\n\n    export function createUpdateInput(entity: Product): IDataServiceRequest {\n        return productsQuery(entity.RecordId).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: Product): AsyncResult<Product> {\n        const request = createUpdateInput(entity);\n        return executeAction<Product>(request, context);\n    }\n\n    export function createDeleteAsync(entity: Product): IDataServiceRequest {\n        return productsQuery(entity.RecordId).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: Product): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(recordId: number): IDataServiceRequest {\n        return productsQuery(recordId).read();\n    }\n\n    export function readAsync(context: IContext, recordId: number): AsyncResult<Product> {\n        const request = createReadAsync(recordId);\n        return executeAction<Product>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return productsQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<Product[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<Product[]>(request, context);\n    }\n    \n    export function createSearchInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ProductSearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('Search', true, \n             'ProductClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n    }    \n    \n    export function searchAsync(context: IContext, productSearchCriteria?: ProductSearchCriteria | null):AsyncResult<Product[]> {\n        const request = createSearchInput(context.queryResultSettings, productSearchCriteria);\n        return executeAction<Product[]>(request, context);\n    }          \n          \n    export function createGetRefinersInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ProductSearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetRefiners', true, \n             'ProductRefinerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {productSearchCriteria: productSearchCriteria });\n    }    \n    \n    export function getRefinersAsync(context: IContext, productSearchCriteria?: ProductSearchCriteria | null):AsyncResult<ProductRefiner[]> {\n        const request = createGetRefinersInput(context.queryResultSettings, productSearchCriteria);\n        return executeAction<ProductRefiner[]>(request, context);\n    }          \n          \n    export function createGetDimensionValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, dimension: number, matchingDimensionValues?: ProductDimension[] | null, kitVariantResolutionContext?: ProductVariantResolutionOnKitSelectionContext | null): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDimensionValues', true, \n             'ProductDimensionValueClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductDimensionValue'}, {channelId: channelId, dimension: dimension, matchingDimensionValues: matchingDimensionValues, kitVariantResolutionContext: kitVariantResolutionContext });\n    }    \n    \n    export function getDimensionValuesAsync(context: IContext, recordId: number, channelId: number, dimension: number, matchingDimensionValues?: ProductDimension[] | null, kitVariantResolutionContext?: ProductVariantResolutionOnKitSelectionContext | null):AsyncResult<ProductDimensionValue[]> {\n        const request = createGetDimensionValuesInput(context.queryResultSettings, recordId, channelId, dimension, matchingDimensionValues, kitVariantResolutionContext);\n        return executeAction<ProductDimensionValue[]>(request, context);\n    }          \n          \n    export function createGetDimensionValuesWithEstimatedAvailabilitiesInput(queryResultSettings: IQueryResultSettings, recordId: number, searchCriteria?: ProductDimensionAvailabilitySearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDimensionValuesWithEstimatedAvailabilities', true, \n             'ProductDimensionValueInventoryAvailabilityClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductDimensionValueInventoryAvailability'}, {searchCriteria: searchCriteria });\n    }    \n    \n    export function getDimensionValuesWithEstimatedAvailabilitiesAsync(context: IContext, recordId: number, searchCriteria?: ProductDimensionAvailabilitySearchCriteria | null):AsyncResult<ProductDimensionValueInventoryAvailability[]> {\n        const request = createGetDimensionValuesWithEstimatedAvailabilitiesInput(context.queryResultSettings, recordId, searchCriteria);\n        return executeAction<ProductDimensionValueInventoryAvailability[]>(request, context);\n    }          \n          \n    export function createGetVariantsByDimensionValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, matchingDimensionValues?: ProductDimension[] | null): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetVariantsByDimensionValues', true, \n             'SimpleProductClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, matchingDimensionValues: matchingDimensionValues });\n    }    \n    \n    export function getVariantsByDimensionValuesAsync(context: IContext, recordId: number, channelId: number, matchingDimensionValues?: ProductDimension[] | null):AsyncResult<SimpleProduct[]> {\n        const request = createGetVariantsByDimensionValuesInput(context.queryResultSettings, recordId, channelId, matchingDimensionValues);\n        return executeAction<SimpleProduct[]>(request, context);\n    }          \n          \n    export function createGetVariantsByComponentsInSlotsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, matchingSlotToComponentRelationship?: ComponentInSlotRelation[] | null): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetVariantsByComponentsInSlots', true, \n             'SimpleProductClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, matchingSlotToComponentRelationship: matchingSlotToComponentRelationship });\n    }    \n    \n    export function getVariantsByComponentsInSlotsAsync(context: IContext, recordId: number, channelId: number, matchingSlotToComponentRelationship?: ComponentInSlotRelation[] | null):AsyncResult<SimpleProduct[]> {\n        const request = createGetVariantsByComponentsInSlotsInput(context.queryResultSettings, recordId, channelId, matchingSlotToComponentRelationship);\n        return executeAction<SimpleProduct[]>(request, context);\n    }          \n          \n    export function createGetByIdsInput(queryResultSettings: IQueryResultSettings, channelId: number, productIds: number[], inventLocationId?: string | null, catalogId?: number | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetByIds', true, \n             'SimpleProductClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productIds: productIds, inventLocationId: inventLocationId, catalogId: catalogId });\n    }    \n    \n    export function getByIdsAsync(context: IContext, channelId: number, productIds: number[], inventLocationId?: string | null, catalogId?: number | null):AsyncResult<SimpleProduct[]> {\n        const request = createGetByIdsInput(context.queryResultSettings, channelId, productIds, inventLocationId, catalogId);\n        return executeAction<SimpleProduct[]>(request, context);\n    }          \n          \n    export function createCompareInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, productIds: number[]): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('Compare', true, \n             'ProductComparisonLineClass'\n          , 'true', {bypassCache: 'get', returnEntity: 'ProductComparisonLine'}, {channelId: channelId, catalogId: catalogId, productIds: productIds });\n    }    \n    \n    export function compareAsync(context: IContext, channelId: number, catalogId: number, productIds: number[]):AsyncResult<ProductComparisonLine[]> {\n        const request = createCompareInput(context.queryResultSettings, channelId, catalogId, productIds);\n        return executeAction<ProductComparisonLine[]>(request, context);\n    }          \n          \n    export function createGetRecommendedProductsInput(queryResultSettings: IQueryResultSettings, productIds: number[], customerId?: string | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetRecommendedProducts', true, \n             'ProductSearchResultClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {productIds: productIds, customerId: customerId });\n    }    \n    \n    export function getRecommendedProductsAsync(context: IContext, productIds: number[], customerId?: string | null):AsyncResult<ProductSearchResult[]> {\n        const request = createGetRecommendedProductsInput(context.queryResultSettings, productIds, customerId);\n        return executeAction<ProductSearchResult[]>(request, context);\n    }          \n          \n    export function createRefineSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('RefineSearchByCategory', true, \n             'ProductSearchResultClass'\n          , 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId, refinementCriteria: refinementCriteria });\n    }    \n    \n    export function refineSearchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult<ProductSearchResult[]> {\n        const request = createRefineSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId, refinementCriteria);\n        return executeAction<ProductSearchResult[]>(request, context);\n    }          \n          \n    export function createRefineSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('RefineSearchByText', true, \n             'ProductSearchResultClass'\n          , 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText, refinementCriteria: refinementCriteria });\n    }    \n    \n    export function refineSearchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult<ProductSearchResult[]> {\n        const request = createRefineSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText, refinementCriteria);\n        return executeAction<ProductSearchResult[]>(request, context);\n    }          \n          \n    export function createGetProductSearchRefinersInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetProductSearchRefiners', true, \n             'ProductRefinerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {searchCriteria: searchCriteria });\n    }    \n    \n    export function getProductSearchRefinersAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult<ProductRefiner[]> {\n        const request = createGetProductSearchRefinersInput(context.queryResultSettings, searchCriteria);\n        return executeAction<ProductRefiner[]>(request, context);\n    }          \n          \n    export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, productIds: number[], address?: Address | null, filterOption?: number | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, \n             'ProductDeliveryOptionsClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductDeliveryOptions'}, {productIds: productIds, address: address, filterOption: filterOption });\n    }    \n    \n    export function getDeliveryOptionsAsync(context: IContext, productIds: number[], address?: Address | null, filterOption?: number | null):AsyncResult<ProductDeliveryOptions[]> {\n        const request = createGetDeliveryOptionsInput(context.queryResultSettings, productIds, address, filterOption);\n        return executeAction<ProductDeliveryOptions[]>(request, context);\n    }          \n          \n    export function createChangesInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('Changes', true, \n             'ProductClass'\n          , 'true', {bypassCache: 'get', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n    }    \n    \n    export function changesAsync(context: IContext, productSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult<Product[]> {\n        const request = createChangesInput(context.queryResultSettings, productSearchCriteria);\n        return executeAction<Product[]>(request, context);\n    }          \n          \n    export function createBeginReadChangedProductsInput(changedProductSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('BeginReadChangedProducts', true, \n             'ReadChangedProductsSessionClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'ReadChangedProductsSession'}, {changedProductSearchCriteria: changedProductSearchCriteria });\n    }    \n    \n    export function beginReadChangedProductsAsync(context: IContext, changedProductSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult<ReadChangedProductsSession> {\n        const request = createBeginReadChangedProductsInput(changedProductSearchCriteria);\n        return executeAction<ReadChangedProductsSession>(request, context);\n    }          \n          \n    export function createReadChangedProductsInput(queryResultSettings: IQueryResultSettings, productSearchCriteria: ChangedProductsSearchCriteria | null, skipProductPriceCalculation?: boolean): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('ReadChangedProducts', true, \n             'ProductClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria, skipProductPriceCalculation: skipProductPriceCalculation });\n    }    \n    \n    export function readChangedProductsAsync(context: IContext, productSearchCriteria: ChangedProductsSearchCriteria | null, skipProductPriceCalculation?: boolean):AsyncResult<Product[]> {\n        const request = createReadChangedProductsInput(context.queryResultSettings, productSearchCriteria, skipProductPriceCalculation);\n        return executeAction<Product[]>(request, context);\n    }          \n          \n    export function createGetDeletedListingsInput(catalogId: number, skip: number, top: number): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('GetDeletedListings', true, \n             'DeletedListingsResultClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'DeletedListingsResult'}, {catalogId: catalogId, skip: skip, top: top });\n    }    \n    \n    export function getDeletedListingsAsync(context: IContext, catalogId: number, skip: number, top: number):AsyncResult<DeletedListingsResult> {\n        const request = createGetDeletedListingsInput(catalogId, skip, top);\n        return executeAction<DeletedListingsResult>(request, context);\n    }          \n          \n    export function createGetAssortedProductIdsInput(queryResultSettings: IQueryResultSettings, productIds: number[], includeFutureAssortedProducts: boolean): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAssortedProductIds', true, \n             'AssortedProductIdentityClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'AssortedProductIdentity'}, {productIds: productIds, includeFutureAssortedProducts: includeFutureAssortedProducts });\n    }    \n    \n    export function getAssortedProductIdsAsync(context: IContext, productIds: number[], includeFutureAssortedProducts: boolean):AsyncResult<AssortedProductIdentity[]> {\n        const request = createGetAssortedProductIdsInput(context.queryResultSettings, productIds, includeFutureAssortedProducts);\n        return executeAction<AssortedProductIdentity[]>(request, context);\n    }          \n          \n    export function createCheckProductsExistenceInput(queryResultSettings: IQueryResultSettings, productExistenceCriteria?: ProductExistenceCriteria | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('CheckProductsExistence', true, \n             'ProductExistenceIdClass'\n          , 'true', {bypassCache: 'get', returnEntity: 'ProductExistenceId'}, {productExistenceCriteria: productExistenceCriteria });\n    }    \n    \n    export function checkProductsExistenceAsync(context: IContext, productExistenceCriteria?: ProductExistenceCriteria | null):AsyncResult<ProductExistenceId[]> {\n        const request = createCheckProductsExistenceInput(context.queryResultSettings, productExistenceCriteria);\n        return executeAction<ProductExistenceId[]>(request, context);\n    }          \n          \n    export function createGetDeletedCatalogsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDeletedCatalogs', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n    }    \n    \n    export function getDeletedCatalogsAsync(context: IContext, ):AsyncResult<number[]> {\n        const request = createGetDeletedCatalogsInput(context.queryResultSettings, );\n        return executeAction<number[]>(request, context);\n    }          \n          \n    export function createGetDeletedLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDeletedLanguages', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n    }    \n    \n    export function getDeletedLanguagesAsync(context: IContext, ):AsyncResult<string[]> {\n        const request = createGetDeletedLanguagesInput(context.queryResultSettings, );\n        return executeAction<string[]>(request, context);\n    }          \n          \n    export function createGetProductRatingsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetProductRatings', true, \n             'ProductRatingClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductRating'}, {productIds: productIds });\n    }    \n    \n    export function getProductRatingsAsync(context: IContext, productIds: number[]):AsyncResult<ProductRating[]> {\n        const request = createGetProductRatingsInput(context.queryResultSettings, productIds);\n        return executeAction<ProductRating[]>(request, context);\n    }          \n          \n    export function createGetProductAssortmentIntervalsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetProductAssortmentIntervals', true, \n             'ProductAssortmentIntervalClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductAssortmentInterval'}, {productIds: productIds });\n    }    \n    \n    export function getProductAssortmentIntervalsAsync(context: IContext, productIds: number[]):AsyncResult<ProductAssortmentInterval[]> {\n        const request = createGetProductAssortmentIntervalsInput(context.queryResultSettings, productIds);\n        return executeAction<ProductAssortmentInterval[]>(request, context);\n    }          \n          \n    export function createDeleteListingsByCatalogsInput(catalogIds: number[]): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('DeleteListingsByCatalogs', true, '', '', {bypassCache: 'get', returnEntity: ''}, {catalogIds: catalogIds });\n    }    \n    \n    export function deleteListingsByCatalogsAsync(context: IContext, catalogIds: number[]):AsyncResult<NullResult> {\n        const request = createDeleteListingsByCatalogsInput(catalogIds);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createDeleteListingsByLanguagesInput(languages?: string[] | null): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('DeleteListingsByLanguages', true, '', '', {bypassCache: 'get', returnEntity: ''}, {languages: languages });\n    }    \n    \n    export function deleteListingsByLanguagesAsync(context: IContext, languages?: string[] | null):AsyncResult<NullResult> {\n        const request = createDeleteListingsByLanguagesInput(languages);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createEndReadChangedProductsInput(session?: ReadChangedProductsSession | null): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('EndReadChangedProducts', true, '', '', {bypassCache: 'get', returnEntity: ''}, {session: session });\n    }    \n    \n    export function endReadChangedProductsAsync(context: IContext, session?: ReadChangedProductsSession | null):AsyncResult<NullResult> {\n        const request = createEndReadChangedProductsInput(session);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createUpdateListingPublishingStatusInput(publishingStatuses?: ListingPublishStatus[] | null): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('UpdateListingPublishingStatus', true, '', '', {bypassCache: 'get', returnEntity: ''}, {publishingStatuses: publishingStatuses });\n    }    \n    \n    export function updateListingPublishingStatusAsync(context: IContext, publishingStatuses?: ListingPublishStatus[] | null):AsyncResult<NullResult> {\n        const request = createUpdateListingPublishingStatusInput(publishingStatuses);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createGetCatalogProductAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCatalogProductAttributes', true, \n             'AttributeProductClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, {catalogId: catalogId });\n    }    \n    \n    export function getCatalogProductAttributesAsync(context: IContext, catalogId: number):AsyncResult<AttributeProduct[]> {\n        const request = createGetCatalogProductAttributesInput(context.queryResultSettings, catalogId);\n        return executeAction<AttributeProduct[]>(request, context);\n    }          \n          \n    export function createSearchMediaLocationsInput(queryResultSettings: IQueryResultSettings, mediaLocationSearchCriteria?: MediaLocationSearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchMediaLocations', true, \n             'MediaLocationClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'MediaLocation'}, {mediaLocationSearchCriteria: mediaLocationSearchCriteria });\n    }    \n    \n    export function searchMediaLocationsAsync(context: IContext, mediaLocationSearchCriteria?: MediaLocationSearchCriteria | null):AsyncResult<MediaLocation[]> {\n        const request = createSearchMediaLocationsInput(context.queryResultSettings, mediaLocationSearchCriteria);\n        return executeAction<MediaLocation[]>(request, context);\n    }          \n          \n    export function createGetPricesInput(queryResultSettings: IQueryResultSettings, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetPrices', true, \n             'ProductPriceClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {itemId: itemId, inventoryDimensionId: inventoryDimensionId, barcode: barcode, customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, quantity: quantity });\n    }    \n    \n    export function getPricesAsync(context: IContext, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number):AsyncResult<ProductPrice[]> {\n        const request = createGetPricesInput(context.queryResultSettings, itemId, inventoryDimensionId, barcode, customerAccountNumber, unitOfMeasureSymbol, quantity);\n        return executeAction<ProductPrice[]>(request, context);\n    }          \n          \n    export function createGetProductAvailabilitiesInput(queryResultSettings: IQueryResultSettings, itemIds: number[], channelId: number): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetProductAvailabilities', true, \n             'ProductAvailableQuantityClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductAvailableQuantity'}, {itemIds: itemIds, channelId: channelId });\n    }    \n    \n    export function getProductAvailabilitiesAsync(context: IContext, itemIds: number[], channelId: number):AsyncResult<ProductAvailableQuantity[]> {\n        const request = createGetProductAvailabilitiesInput(context.queryResultSettings, itemIds, channelId);\n        return executeAction<ProductAvailableQuantity[]>(request, context);\n    }          \n          \n    export function createGetActivePricesInput(queryResultSettings: IQueryResultSettings, projectDomain: ProjectionDomain | null, productIds?: number[], activeDate?: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null, includeVariantPriceRange?: boolean | null, includeAttainablePricesAndDiscounts?: boolean | null, priceLookupContext?: PriceLookupContext | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetActivePrices', true, \n             'ProductPriceClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {projectDomain: projectDomain, productIds: productIds, activeDate: activeDate, customerId: customerId, affiliationLoyaltyTiers: affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice: includeSimpleDiscountsInContextualPrice, includeVariantPriceRange: includeVariantPriceRange, includeAttainablePricesAndDiscounts: includeAttainablePricesAndDiscounts, priceLookupContext: priceLookupContext });\n    }    \n    \n    export function getActivePricesAsync(context: IContext, projectDomain: ProjectionDomain | null, productIds?: number[], activeDate?: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null, includeVariantPriceRange?: boolean | null, includeAttainablePricesAndDiscounts?: boolean | null, priceLookupContext?: PriceLookupContext | null):AsyncResult<ProductPrice[]> {\n        const request = createGetActivePricesInput(context.queryResultSettings, projectDomain, productIds, activeDate, customerId, affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice, includeVariantPriceRange, includeAttainablePricesAndDiscounts, priceLookupContext);\n        return executeAction<ProductPrice[]>(request, context);\n    }          \n          \n    export function createGetProductPromotionsInput(queryResultSettings: IQueryResultSettings, productDiscountIds: string[] | null, priceLookupContext: PriceLookupContext | null, activeDate?: Date): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetProductPromotions', true, \n             'ProductPromotionClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductPromotion'}, {productDiscountIds: productDiscountIds, priceLookupContext: priceLookupContext, activeDate: activeDate });\n    }    \n    \n    export function getProductPromotionsAsync(context: IContext, productDiscountIds: string[] | null, priceLookupContext: PriceLookupContext | null, activeDate?: Date):AsyncResult<ProductPromotion[]> {\n        const request = createGetProductPromotionsInput(context.queryResultSettings, productDiscountIds, priceLookupContext, activeDate);\n        return executeAction<ProductPromotion[]>(request, context);\n    }          \n          \n    export function createGetFilteredSlotComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, slotId: number, selectedComponents?: ComponentInSlotRelation[] | null): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFilteredSlotComponents', true, \n             'ProductComponentClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, slotId: slotId, selectedComponents: selectedComponents });\n    }    \n    \n    export function getFilteredSlotComponentsAsync(context: IContext, recordId: number, channelId: number, slotId: number, selectedComponents?: ComponentInSlotRelation[] | null):AsyncResult<ProductComponent[]> {\n        const request = createGetFilteredSlotComponentsInput(context.queryResultSettings, recordId, channelId, slotId, selectedComponents);\n        return executeAction<ProductComponent[]>(request, context);\n    }          \n          \n    export function createGetComponentByProductSlotRelationInput(channelId: number, componentRelation?: ComponentInSlotRelation | null): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('GetComponentByProductSlotRelation', true, \n             'ProductComponentClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, componentRelation: componentRelation });\n    }    \n    \n    export function getComponentByProductSlotRelationAsync(context: IContext, channelId: number, componentRelation?: ComponentInSlotRelation | null):AsyncResult<ProductComponent> {\n        const request = createGetComponentByProductSlotRelationInput(channelId, componentRelation);\n        return executeAction<ProductComponent>(request, context);\n    }          \n          \n    export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null, hitPrefix?: string | null, hitSuffix?: string | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetSearchSuggestions', false, \n             'SearchSuggestionClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {channelId: channelId, catalogId: catalogId, searchText: searchText, hitPrefix: hitPrefix, hitSuffix: hitSuffix });\n    }    \n    \n    export function getSearchSuggestionsAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null, hitPrefix?: string | null, hitSuffix?: string | null):AsyncResult<SearchSuggestion[]> {\n        const request = createGetSearchSuggestionsInput(context.queryResultSettings, channelId, catalogId, searchText, hitPrefix, hitSuffix);\n        return executeAction<SearchSuggestion[]>(request, context);\n    }          \n          \n    export function createGetCategoryPathsInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryPathLookups?: CategoryPathLookup[] | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCategoryPaths', true, \n             'CategoryPathResultClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CategoryPathResult'}, {channelId: channelId, catalogId: catalogId, CategoryPathLookups: categoryPathLookups });\n    }    \n    \n    export function getCategoryPathsAsync(context: IContext, channelId: number, catalogId: number, categoryPathLookups?: CategoryPathLookup[] | null):AsyncResult<CategoryPathResult[]> {\n        const request = createGetCategoryPathsInput(context.queryResultSettings, channelId, catalogId, categoryPathLookups);\n        return executeAction<CategoryPathResult[]>(request, context);\n    }          \n          \n    export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings, recordId: number, ): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, \n             'UnitOfMeasureClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n    }    \n    \n    export function getUnitsOfMeasureAsync(context: IContext, recordId: number):AsyncResult<UnitOfMeasure[]> {\n        const request = createGetUnitsOfMeasureInput(context.queryResultSettings, recordId);\n        return executeAction<UnitOfMeasure[]>(request, context);\n    }          \n          \n    export function createGetProductUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings, productId: number, unitOfMeasureSearchCriteria?: UnitOfMeasureSearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetProductUnitsOfMeasure', true, \n             'ProductUnitOfMeasureClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductUnitOfMeasure'}, {productId: productId, unitOfMeasureSearchCriteria: unitOfMeasureSearchCriteria });\n    }    \n    \n    export function getProductUnitsOfMeasureAsync(context: IContext, productId: number, unitOfMeasureSearchCriteria?: UnitOfMeasureSearchCriteria | null):AsyncResult<ProductUnitOfMeasure[]> {\n        const request = createGetProductUnitsOfMeasureInput(context.queryResultSettings, productId, unitOfMeasureSearchCriteria);\n        return executeAction<ProductUnitOfMeasure[]>(request, context);\n    }          \n          \n    export function createSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchByCategory', false, \n             'ProductSearchResultClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId });\n    }    \n    \n    export function searchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number):AsyncResult<ProductSearchResult[]> {\n        const request = createSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId);\n        return executeAction<ProductSearchResult[]>(request, context);\n    }          \n          \n    export function createSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchByText', false, \n             'ProductSearchResultClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText });\n    }    \n    \n    export function searchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null):AsyncResult<ProductSearchResult[]> {\n        const request = createSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText);\n        return executeAction<ProductSearchResult[]>(request, context);\n    }          \n          \n    export function createSearchByCriteriaInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchByCriteria', true, \n             'ProductSearchResultClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {searchCriteria: searchCriteria });\n    }    \n    \n    export function searchByCriteriaAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult<ProductSearchResult[]> {\n        const request = createSearchByCriteriaInput(context.queryResultSettings, searchCriteria);\n        return executeAction<ProductSearchResult[]>(request, context);\n    }          \n          \n    export function createGetByLookupClausesInput(queryResultSettings: IQueryResultSettings, channelId: number, productLookupClauses?: ProductLookupClause[] | null, catalogId?: number | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetByLookupClauses', true, \n             'SimpleProductClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productLookupClauses: productLookupClauses, catalogId: catalogId });\n    }    \n    \n    export function getByLookupClausesAsync(context: IContext, channelId: number, productLookupClauses?: ProductLookupClause[] | null, catalogId?: number | null):AsyncResult<SimpleProduct[]> {\n        const request = createGetByLookupClausesInput(context.queryResultSettings, channelId, productLookupClauses, catalogId);\n        return executeAction<SimpleProduct[]>(request, context);\n    }          \n          \n    export function createGetRefinersByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetRefinersByCategory', false, \n             'ProductRefinerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, categoryId: categoryId });\n    }    \n    \n    export function getRefinersByCategoryAsync(context: IContext, catalogId: number, categoryId: number):AsyncResult<ProductRefiner[]> {\n        const request = createGetRefinersByCategoryInput(context.queryResultSettings, catalogId, categoryId);\n        return executeAction<ProductRefiner[]>(request, context);\n    }          \n          \n    export function createGetRefinersByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText?: string | null): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetRefinersByText', false, \n             'ProductRefinerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, searchText: searchText });\n    }    \n    \n    export function getRefinersByTextAsync(context: IContext, catalogId: number, searchText?: string | null):AsyncResult<ProductRefiner[]> {\n        const request = createGetRefinersByTextInput(context.queryResultSettings, catalogId, searchText);\n        return executeAction<ProductRefiner[]>(request, context);\n    }          \n          \n    export function createGetRefinerValuesByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetRefinerValuesByCategory', false, \n             'ProductRefinerValueClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, categoryId: categoryId, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n    }    \n    \n    export function getRefinerValuesByCategoryAsync(context: IContext, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number):AsyncResult<ProductRefinerValue[]> {\n        const request = createGetRefinerValuesByCategoryInput(context.queryResultSettings, catalogId, categoryId, refinerId, refinerSourceValue);\n        return executeAction<ProductRefinerValue[]>(request, context);\n    }          \n          \n    export function createGetRefinerValuesByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetRefinerValuesByText', false, \n             'ProductRefinerValueClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, searchText: searchText, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n    }    \n    \n    export function getRefinerValuesByTextAsync(context: IContext, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number):AsyncResult<ProductRefinerValue[]> {\n        const request = createGetRefinerValuesByTextInput(context.queryResultSettings, catalogId, searchText, refinerId, refinerSourceValue);\n        return executeAction<ProductRefinerValue[]>(request, context);\n    }          \n          \n    export function createGetChannelProductAttributesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetChannelProductAttributes', false, \n             'AttributeProductClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, { });\n    }    \n    \n    export function getChannelProductAttributesAsync(context: IContext, ):AsyncResult<AttributeProduct[]> {\n        const request = createGetChannelProductAttributesInput(context.queryResultSettings, );\n        return executeAction<AttributeProduct[]>(request, context);\n    }          \n          \n    export function createGetByIdInput(recordId: number, channelId: number): IDataServiceRequest {      \n        const query = productsQuery(recordId);\n        return query.createDataServiceRequestForOperation('GetById', false, \n             'SimpleProductClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId });\n    }    \n    \n    export function getByIdAsync(context: IContext, recordId: number, channelId: number):AsyncResult<SimpleProduct> {\n        const request = createGetByIdInput(recordId, channelId);\n        return executeAction<SimpleProduct>(request, context);\n    }          \n          \n    export function createGetAttributeValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAttributeValues', false, \n             'AttributeValueClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'AttributeValue'}, {channelId: channelId, catalogId: catalogId });\n    }    \n    \n    export function getAttributeValuesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult<AttributeValue[]> {\n        const request = createGetAttributeValuesInput(context.queryResultSettings, recordId, channelId, catalogId);\n        return executeAction<AttributeValue[]>(request, context);\n    }          \n          \n    export function createGetMediaLocationsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetMediaLocations', false, \n             'MediaLocationClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'MediaLocation'}, {channelId: channelId, catalogId: catalogId });\n    }    \n    \n    export function getMediaLocationsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult<MediaLocation[]> {\n        const request = createGetMediaLocationsInput(context.queryResultSettings, recordId, channelId, catalogId);\n        return executeAction<MediaLocation[]>(request, context);\n    }          \n          \n    export function createGetMediaBlobsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetMediaBlobs', false, \n             'MediaBlobClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'MediaBlob'}, {channelId: channelId, catalogId: catalogId });\n    }    \n    \n    export function getMediaBlobsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult<MediaBlob[]> {\n        const request = createGetMediaBlobsInput(context.queryResultSettings, recordId, channelId, catalogId);\n        return executeAction<MediaBlob[]>(request, context);\n    }          \n          \n    export function createGetDefaultComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDefaultComponents', false, \n             'ProductComponentClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId });\n    }    \n    \n    export function getDefaultComponentsAsync(context: IContext, recordId: number, channelId: number):AsyncResult<ProductComponent[]> {\n        const request = createGetDefaultComponentsInput(context.queryResultSettings, recordId, channelId);\n        return executeAction<ProductComponent[]>(request, context);\n    }          \n          \n    export function createGetSlotComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, slotId: number): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetSlotComponents', false, \n             'ProductComponentClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, slotId: slotId });\n    }    \n    \n    export function getSlotComponentsAsync(context: IContext, recordId: number, channelId: number, slotId: number):AsyncResult<ProductComponent[]> {\n        const request = createGetSlotComponentsInput(context.queryResultSettings, recordId, channelId, slotId);\n        return executeAction<ProductComponent[]>(request, context);\n    }          \n          \n    export function createGetAllRelationTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAllRelationTypes', false, \n             'ProductRelationTypeClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, { });\n    }    \n    \n    export function getAllRelationTypesAsync(context: IContext, ):AsyncResult<ProductRelationType[]> {\n        const request = createGetAllRelationTypesInput(context.queryResultSettings, );\n        return executeAction<ProductRelationType[]>(request, context);\n    }          \n          \n    export function createGetRelationTypesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetRelationTypes', false, \n             'ProductRelationTypeClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, {channelId: channelId, catalogId: catalogId });\n    }    \n    \n    export function getRelationTypesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult<ProductRelationType[]> {\n        const request = createGetRelationTypesInput(context.queryResultSettings, recordId, channelId, catalogId);\n        return executeAction<ProductRelationType[]>(request, context);\n    }          \n          \n    export function createGetRelatedProductsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number, relationTypeId: number): IDataServiceRequest {      \n        const query = productsQuery(recordId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetRelatedProducts', false, \n             'ProductSearchResultClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, relationTypeId: relationTypeId });\n    }    \n    \n    export function getRelatedProductsAsync(context: IContext, recordId: number, channelId: number, catalogId: number, relationTypeId: number):AsyncResult<ProductSearchResult[]> {\n        const request = createGetRelatedProductsInput(context.queryResultSettings, recordId, channelId, catalogId, relationTypeId);\n        return executeAction<ProductSearchResult[]>(request, context);\n    }          \n          \n    export function createGetApplicableWarrantiesInput(queryResultSettings: IQueryResultSettings, catalogId: number, warrantableProductIds: number[]): IDataServiceRequest {      \n        const query = productsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetApplicableWarranties', true, \n             'ProductWarrantiesMappingClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductWarrantiesMapping'}, {catalogId: catalogId, warrantableProductIds: warrantableProductIds });\n    }    \n    \n    export function getApplicableWarrantiesAsync(context: IContext, catalogId: number, warrantableProductIds: number[]):AsyncResult<ProductWarrantiesMapping[]> {\n        const request = createGetApplicableWarrantiesInput(context.queryResultSettings, catalogId, warrantableProductIds);\n        return executeAction<ProductWarrantiesMapping[]>(request, context);\n    }          \n          \n    export function createGetPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null): IDataServiceRequest {      \n        const query = productsQuery(recordId);\n        return query.createDataServiceRequestForOperation('GetPrice', false, \n             'ProductPriceClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol });\n    }    \n    \n    export function getPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null):AsyncResult<ProductPrice> {\n        const request = createGetPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol);\n        return executeAction<ProductPrice>(request, context);\n    }          \n          \n    export function createCalculateProductPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null): IDataServiceRequest {      \n        const query = productsQuery(recordId);\n        return query.createDataServiceRequestForOperation('CalculateProductPrice', true, \n             'ProductPriceClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, loyaltyCardId: loyaltyCardId, affiliationLoyaltyTiers: affiliationLoyaltyTiers });\n    }    \n    \n    export function calculateProductPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null):AsyncResult<ProductPrice> {\n        const request = createCalculateProductPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol, loyaltyCardId, affiliationLoyaltyTiers);\n        return executeAction<ProductPrice>(request, context);\n    }          \n          \n    export function createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('GetEstimatedProductWarehouseAvailability', true, \n             'ProductWarehouseInventoryInformationClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {productWarehouses: productWarehouses, quantityUnitType: quantityUnitType });\n    }    \n    \n    export function getEstimatedProductWarehouseAvailabilityAsync(context: IContext, productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null):AsyncResult<ProductWarehouseInventoryInformation> {\n        const request = createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses, quantityUnitType);\n        return executeAction<ProductWarehouseInventoryInformation>(request, context);\n    }          \n          \n    export function createUpdateProductWarehouseAvailabilityInput(quantities?: ProductWarehouseQuantity[] | null): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('UpdateProductWarehouseAvailability', true, \n             'UpdateProductWarehouseAvailabilityResultClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'UpdateProductWarehouseAvailabilityResult'}, {quantities: quantities });\n    }    \n    \n    export function updateProductWarehouseAvailabilityAsync(context: IContext, quantities?: ProductWarehouseQuantity[] | null):AsyncResult<UpdateProductWarehouseAvailabilityResult> {\n        const request = createUpdateProductWarehouseAvailabilityInput(quantities);\n        return executeAction<UpdateProductWarehouseAvailabilityResult>(request, context);\n    }          \n          \n    export function createGetEstimatedAvailabilityInput(searchCriteria?: InventoryAvailabilitySearchCriteria | null): IDataServiceRequest {      \n        const query = productsQuery();\n        return query.createDataServiceRequestForOperation('GetEstimatedAvailability', true, \n             'ProductWarehouseInventoryInformationClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {searchCriteria: searchCriteria });\n    }    \n    \n    export function getEstimatedAvailabilityAsync(context: IContext, searchCriteria?: InventoryAvailabilitySearchCriteria | null):AsyncResult<ProductWarehouseInventoryInformation> {\n        const request = createGetEstimatedAvailabilityInput(searchCriteria);\n        return executeAction<ProductWarehouseInventoryInformation>(request, context);\n    }          \n          \n    ","\n      \n    /**\n     * The matched retail server api version.\n     */\n    export const ApiVersion: string = \"7.3\";\n  \n    export const EntityIdentifier = {\n      \n  'Category' : {\n    'Key': \n  'RecordId'\n  },\n  'Cart' : {\n    'Key': \n  'Id'\n  },\n  'Customer' : {\n    'Key': \n  'AccountNumber'\n  },\n  'Employee' : {\n    'Key': \n  'StaffId'\n  },\n  'Checklist' : {\n    'Key': \n  'RecordId'\n  },\n  'SalesOrder' : {\n    'Key': \n  'Id'\n  },\n  'Shift' : {\n    'Key':  [ \n  'ShiftId',\n  'TerminalId' ] \n  },\n  'StockCountJournal' : {\n    'Key': \n  'JournalId'\n  },\n  'OrgUnit' : {\n    'Key': \n  'OrgUnitNumber'\n  },\n  'Product' : {\n    'Key': \n  'RecordId'\n  },\n  'ProductCatalog' : {\n    'Key': \n  'RecordId'\n  },\n  'CommerceList' : {\n    'Key': \n  'Id'\n  },\n  'ProductList' : {\n    'Key': \n  'Id'\n  },\n  'Recommendation' : {\n    'Key': \n  'Id'\n  },\n  'TransferOrder' : {\n    'Key': \n  'OrderId'\n  },\n  'PurchaseOrder' : {\n    'Key': \n  'OrderId'\n  },\n  'PickingList' : {\n    'Key': \n  'OrderId'\n  },\n  'Warehouse' : {\n    'Key': \n  'InventLocation'\n  },\n  'ScanResult' : {\n    'Key': \n  'ScannedText'\n  },\n  'SalesOrderContextualOperationsMap' : {\n    'Key': \n  'Id'\n  },\n  'InventoryInboundOutboundDocument' : {\n    'Key': \n  'WorkDocumentId'\n  },\n  'BusinessPartner' : {\n    'Key': \n  'BusinessPartnerId'\n  },\n  'BusinessPartnerUser' : {\n    'Key': \n  'B2BUserId'\n  },\n  'SuspendedCart' : {\n    'Key': \n  'Id'\n  } \n    };\n      \n    \n    /**\n     * AutoExitMethodType enum type.\n     */\n    export enum AutoExitMethodType {\n      \n        /**\n         * The Logoff member.\n         */\n        Logoff = 0,\n        \n        /**\n         * The Lock member.\n         */\n        Lock = 1,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * CardType enum type.\n     */\n    export enum CardType {\n      \n        /**\n         * The InternationalCreditCard member.\n         */\n        InternationalCreditCard = 0,\n        \n        /**\n         * The InternationalDebitCard member.\n         */\n        InternationalDebitCard = 1,\n        \n        /**\n         * The LoyaltyCard member.\n         */\n        LoyaltyCard = 2,\n        \n        /**\n         * The CorporateCard member.\n         */\n        CorporateCard = 3,\n        \n        /**\n         * The CustomerCard member.\n         */\n        CustomerCard = 4,\n        \n        /**\n         * The EmployeeCard member.\n         */\n        EmployeeCard = 5,\n        \n        /**\n         * The SalespersonCard member.\n         */\n        SalespersonCard = 6,\n        \n        /**\n         * The GiftCard member.\n         */\n        GiftCard = 7,\n        \n        /**\n         * The Check member.\n         */\n        Check = 8,\n        \n        /**\n         * The Wallet member.\n         */\n        Wallet = 9,\n        \n        /**\n         * The FoodCard member.\n         */\n        FoodCard = 21,\n        \n        /**\n         * The MealCard member.\n         */\n        MealCard = 22,\n        \n        /**\n         * The FuelCard member.\n         */\n        FuelCard = 23,\n        \n        /**\n         * The Unknown member.\n         */\n        Unknown = -1\n    }\n    \n    /**\n     * PublishingAction enum type.\n     */\n    export enum PublishingAction {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Publish member.\n         */\n        Publish = 1,\n        \n        /**\n         * The Delete member.\n         */\n        Delete = 2,\n        \n        /**\n         * The Expire member.\n         */\n        Expire = 3\n    }\n    \n    /**\n     * ListingPublishingActionStatus enum type.\n     */\n    export enum ListingPublishingActionStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Ready member.\n         */\n        Ready = 1,\n        \n        /**\n         * The InProgress member.\n         */\n        InProgress = 2,\n        \n        /**\n         * The Done member.\n         */\n        Done = 3,\n        \n        /**\n         * The Failed member.\n         */\n        Failed = 4\n    }\n    \n    /**\n     * OnlineChannelPublishStatusType enum type.\n     */\n    export enum OnlineChannelPublishStatusType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Draft member.\n         */\n        Draft = 1,\n        \n        /**\n         * The InProgress member.\n         */\n        InProgress = 2,\n        \n        /**\n         * The Published member.\n         */\n        Published = 3,\n        \n        /**\n         * The Failed member.\n         */\n        Failed = 4\n    }\n    \n    /**\n     * ReceiptTransactionType enum type.\n     */\n    export enum ReceiptTransactionType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Sale member.\n         */\n        Sale = 1,\n        \n        /**\n         * The Return member.\n         */\n        Return = 2,\n        \n        /**\n         * The Payment member.\n         */\n        Payment = 5,\n        \n        /**\n         * The SalesOrder member.\n         */\n        SalesOrder = 6,\n        \n        /**\n         * The Quote member.\n         */\n        Quote = 7,\n        \n        /**\n         * The SuspendedTransaction member.\n         */\n        SuspendedTransaction = 9\n    }\n    \n    /**\n     * EmployeePriceOverrideType enum type.\n     */\n    export enum EmployeePriceOverrideType {\n      \n        /**\n         * The HigherAndLower member.\n         */\n        HigherAndLower = 0,\n        \n        /**\n         * The HigherOnly member.\n         */\n        HigherOnly = 1,\n        \n        /**\n         * The LowerOnly member.\n         */\n        LowerOnly = 2,\n        \n        /**\n         * The NotAllowed member.\n         */\n        NotAllowed = 3\n    }\n    \n    /**\n     * KeyInPriceRestriction enum type.\n     */\n    export enum KeyInPriceRestriction {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The NewPrice member.\n         */\n        NewPrice = 1,\n        \n        /**\n         * The HigherOrEqualPrice member.\n         */\n        HigherOrEqualPrice = 2,\n        \n        /**\n         * The LowerOrEqualPrice member.\n         */\n        LowerOrEqualPrice = 3,\n        \n        /**\n         * The NotAllowed member.\n         */\n        NotAllowed = 4\n    }\n    \n    /**\n     * KeyInQuantityRestriction enum type.\n     */\n    export enum KeyInQuantityRestriction {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Required member.\n         */\n        Required = 1,\n        \n        /**\n         * The NotAllowed member.\n         */\n        NotAllowed = 2\n    }\n    \n    /**\n     * ProductDimensionType enum type.\n     */\n    export enum ProductDimensionType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Color member.\n         */\n        Color = 1,\n        \n        /**\n         * The Configuration member.\n         */\n        Configuration = 2,\n        \n        /**\n         * The Size member.\n         */\n        Size = 3,\n        \n        /**\n         * The Style member.\n         */\n        Style = 4\n    }\n    \n    /**\n     * ProductType enum type.\n     */\n    export enum ProductType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The KitMaster member.\n         */\n        KitMaster = 1,\n        \n        /**\n         * The KitVariant member.\n         */\n        KitVariant = 2,\n        \n        /**\n         * The Master member.\n         */\n        Master = 3,\n        \n        /**\n         * The Standalone member.\n         */\n        Standalone = 4,\n        \n        /**\n         * The Variant member.\n         */\n        Variant = 5\n    }\n    \n    /**\n     * NumberSequenceSeedType enum type.\n     */\n    export enum NumberSequenceSeedType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The ReceiptDefault member.\n         */\n        ReceiptDefault = 1,\n        \n        /**\n         * The ReceiptSale member.\n         */\n        ReceiptSale = 2,\n        \n        /**\n         * The ReceiptReturn member.\n         */\n        ReceiptReturn = 3,\n        \n        /**\n         * The ReceiptSalesOrder member.\n         */\n        ReceiptSalesOrder = 4,\n        \n        /**\n         * The ReceiptSalesInvoice member.\n         */\n        ReceiptSalesInvoice = 5,\n        \n        /**\n         * The ReceiptPayment member.\n         */\n        ReceiptPayment = 6,\n        \n        /**\n         * The BatchId member.\n         */\n        BatchId = 7,\n        \n        /**\n         * The TransactionId member.\n         */\n        TransactionId = 8,\n        \n        /**\n         * The ReceiptCustomerSalesOrder member.\n         */\n        ReceiptCustomerSalesOrder = 10,\n        \n        /**\n         * The ReceiptCustomerQuote member.\n         */\n        ReceiptCustomerQuote = 11,\n        \n        /**\n         * The ReceiptSuspendedTransaction member.\n         */\n        ReceiptSuspendedTransaction = 22\n    }\n    \n    /**\n     * ReasonCodeSourceType enum type.\n     */\n    export enum ReasonCodeSourceType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The AddSalesperson member.\n         */\n        AddSalesperson = 1,\n        \n        /**\n         * The EndOfTransaction member.\n         */\n        EndOfTransaction = 2,\n        \n        /**\n         * The ItemDiscount member.\n         */\n        ItemDiscount = 3,\n        \n        /**\n         * The ItemNotOnFile member.\n         */\n        ItemNotOnFile = 4,\n        \n        /**\n         * The LineItemTaxChange member.\n         */\n        LineItemTaxChange = 5,\n        \n        /**\n         * The Markup member.\n         */\n        Markup = 6,\n        \n        /**\n         * The NegativeAdjustment member.\n         */\n        NegativeAdjustment = 7,\n        \n        /**\n         * The NfcEContingencyModeEnabled member.\n         */\n        NfcEContingencyModeEnabled = 8,\n        \n        /**\n         * The NfcEVoided member.\n         */\n        NfcEVoided = 9,\n        \n        /**\n         * The OpenDrawer member.\n         */\n        OpenDrawer = 10,\n        \n        /**\n         * The OverridePrice member.\n         */\n        OverridePrice = 11,\n        \n        /**\n         * The ReturnItem member.\n         */\n        ReturnItem = 12,\n        \n        /**\n         * The ReturnTransaction member.\n         */\n        ReturnTransaction = 13,\n        \n        /**\n         * The SerialNumber member.\n         */\n        SerialNumber = 14,\n        \n        /**\n         * The StartOfTransaction member.\n         */\n        StartOfTransaction = 15,\n        \n        /**\n         * The TenderDeclaration member.\n         */\n        TenderDeclaration = 16,\n        \n        /**\n         * The TotalDiscount member.\n         */\n        TotalDiscount = 17,\n        \n        /**\n         * The TransactionTaxChange member.\n         */\n        TransactionTaxChange = 18,\n        \n        /**\n         * The VoidItem member.\n         */\n        VoidItem = 19,\n        \n        /**\n         * The VoidPayment member.\n         */\n        VoidPayment = 20,\n        \n        /**\n         * The VoidTransaction member.\n         */\n        VoidTransaction = 21,\n        \n        /**\n         * The OrderFulfillment member.\n         */\n        OrderFulfillment = 22,\n        \n        /**\n         * The ManualCharge member.\n         */\n        ManualCharge = 23\n    }\n    \n    /**\n     * TriggerFunctionType enum type.\n     */\n    export enum TriggerFunctionType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Item member.\n         */\n        Item = 1,\n        \n        /**\n         * The InfoCode member.\n         */\n        InfoCode = 2\n    }\n    \n    /**\n     * QueryType enum type.\n     */\n    export enum QueryType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The NameAndDescription member.\n         */\n        NameAndDescription = 1,\n        \n        /**\n         * The AotObject member.\n         */\n        AotObject = 2\n    }\n    \n    /**\n     * ChangeAction enum type.\n     */\n    export enum ChangeAction {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Insert member.\n         */\n        Insert = 1,\n        \n        /**\n         * The Update member.\n         */\n        Update = 2,\n        \n        /**\n         * The Delete member.\n         */\n        Delete = 3\n    }\n    \n    /**\n     * PeriodicDiscountOfferType enum type.\n     */\n    export enum PeriodicDiscountOfferType {\n      \n        /**\n         * The MultipleBuy member.\n         */\n        MultipleBuy = 0,\n        \n        /**\n         * The MixAndMatch member.\n         */\n        MixAndMatch = 1,\n        \n        /**\n         * The Offer member.\n         */\n        Offer = 2,\n        \n        /**\n         * The Promotion member.\n         */\n        Promotion = 3,\n        \n        /**\n         * The Threshold member.\n         */\n        Threshold = 4,\n        \n        /**\n         * The LeastExpensiveFavorRetailer member.\n         */\n        LeastExpensiveFavorRetailer = 5,\n        \n        /**\n         * The OfferLineQuantityLimit member.\n         */\n        OfferLineQuantityLimit = 6,\n        \n        /**\n         * The ShippingThreshold member.\n         */\n        ShippingThreshold = 7\n    }\n    \n    /**\n     * SearchFilterType enum type.\n     */\n    export enum SearchFilterType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Text member.\n         */\n        Text = 1\n    }\n    \n    /**\n     * InfoCodeActivity enum type.\n     */\n    export enum InfoCodeActivity {\n      \n        /**\n         * The Transaction member.\n         */\n        Transaction = 0,\n        \n        /**\n         * The OrderFulfillment member.\n         */\n        OrderFulfillment = 1\n    }\n    \n    /**\n     * SrsReportFileFormat enum type.\n     */\n    export enum SrsReportFileFormat {\n      \n        /**\n         * The CSV member.\n         */\n        CSV = 0,\n        \n        /**\n         * The Excel member.\n         */\n        Excel = 1,\n        \n        /**\n         * The HTML4_0 member.\n         */\n        HTML4_0 = 2,\n        \n        /**\n         * The Image member.\n         */\n        Image = 3,\n        \n        /**\n         * The MHTML member.\n         */\n        MHTML = 4,\n        \n        /**\n         * The PDF member.\n         */\n        PDF = 5,\n        \n        /**\n         * The XML member.\n         */\n        XML = 6\n    }\n    \n    /**\n     * ShiftReconciliationLineStatus enum type.\n     */\n    export enum ShiftReconciliationLineStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Pending member.\n         */\n        Pending = 1,\n        \n        /**\n         * The Reconciled member.\n         */\n        Reconciled = 2,\n        \n        /**\n         * The Closed member.\n         */\n        Closed = 3\n    }\n    \n    /**\n     * ProductSearchServiceType enum type.\n     */\n    export enum ProductSearchServiceType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The ChannelDatabase member.\n         */\n        ChannelDatabase = 1,\n        \n        /**\n         * The CommerceAzureSearchService member.\n         */\n        CommerceAzureSearchService = 2,\n        \n        /**\n         * The CommerceBingSearchService member.\n         */\n        CommerceBingSearchService = 3\n    }\n    \n    /**\n     * SearchSuggestionType enum type.\n     */\n    export enum SearchSuggestionType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Keyword member.\n         */\n        Keyword = 1,\n        \n        /**\n         * The Product member.\n         */\n        Product = 2,\n        \n        /**\n         * The ScopedCategory member.\n         */\n        ScopedCategory = 4,\n        \n        /**\n         * The Category member.\n         */\n        Category = 8,\n        \n        /**\n         * The Customer member.\n         */\n        Customer = 16\n    }\n    \n    /**\n     * SalesStatus enum type.\n     */\n    export enum SalesStatus {\n      \n        /**\n         * The Unknown member.\n         */\n        Unknown = 0,\n        \n        /**\n         * The Created member.\n         */\n        Created = 1,\n        \n        /**\n         * The Processing member.\n         */\n        Processing = 2,\n        \n        /**\n         * The Delivered member.\n         */\n        Delivered = 3,\n        \n        /**\n         * The Invoiced member.\n         */\n        Invoiced = 4,\n        \n        /**\n         * The Confirmed member.\n         */\n        Confirmed = 5,\n        \n        /**\n         * The Sent member.\n         */\n        Sent = 6,\n        \n        /**\n         * The Canceled member.\n         */\n        Canceled = 7,\n        \n        /**\n         * The Lost member.\n         */\n        Lost = 8\n    }\n    \n    /**\n     * EFTType enum type.\n     */\n    export enum EFTType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The External member.\n         */\n        External = 1,\n        \n        /**\n         * The PaymentSDK member.\n         */\n        PaymentSDK = 2,\n        \n        /**\n         * The DynamicsOnline member.\n         */\n        DynamicsOnline = 3\n    }\n    \n    /**\n     * FilterDeliveryModeOption enum type.\n     */\n    export enum FilterDeliveryModeOption {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The FilterOutNonCarrierDeliveryMode member.\n         */\n        FilterOutNonCarrierDeliveryMode = 1,\n        \n        /**\n         * The DoNotFilterByChannel member.\n         */\n        DoNotFilterByChannel = 2,\n        \n        /**\n         * The FilterOutNonPickupDeliveryMode member.\n         */\n        FilterOutNonPickupDeliveryMode = 4\n    }\n    \n    /**\n     * InventoryDocumentLineOperationResultMode enum type.\n     */\n    export enum InventoryDocumentLineOperationResultMode {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The NoLines member.\n         */\n        NoLines = 1,\n        \n        /**\n         * The AllLines member.\n         */\n        AllLines = 2\n    }\n    \n    /**\n     * InventoryDocumentStatus enum type.\n     */\n    export enum InventoryDocumentStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Paused member.\n         */\n        Paused = 1,\n        \n        /**\n         * The InProgress member.\n         */\n        InProgress = 2,\n        \n        /**\n         * The Committed member.\n         */\n        Committed = 3,\n        \n        /**\n         * The ProcessSucceeded member.\n         */\n        ProcessSucceeded = 4,\n        \n        /**\n         * The ProcessFailed member.\n         */\n        ProcessFailed = 5\n    }\n    \n    /**\n     * InventoryDocumentUpdateLinesActionType enum type.\n     */\n    export enum InventoryDocumentUpdateLinesActionType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The ApplyQuantity member.\n         */\n        ApplyQuantity = 1,\n        \n        /**\n         * The ApplyMaximumQuantity member.\n         */\n        ApplyMaximumQuantity = 2\n    }\n    \n    /**\n     * InventoryInboundOutboundDocumentOperationType enum type.\n     */\n    export enum InventoryInboundOutboundDocumentOperationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The ReceivePurchaseOrder member.\n         */\n        ReceivePurchaseOrder = 1,\n        \n        /**\n         * The ReceiveTransferOrder member.\n         */\n        ReceiveTransferOrder = 2,\n        \n        /**\n         * The ShipTransferOrder member.\n         */\n        ShipTransferOrder = 3,\n        \n        /**\n         * The CreateTransferOrder member.\n         */\n        CreateTransferOrder = 4,\n        \n        /**\n         * The SaveInventoryAdjustment member.\n         */\n        SaveInventoryAdjustment = 5,\n        \n        /**\n         * The PostInventoryAdjustment member.\n         */\n        PostInventoryAdjustment = 6,\n        \n        /**\n         * The PostInventoryTransfer member.\n         */\n        PostInventoryTransfer = 7,\n        \n        /**\n         * The SaveStockCounting member.\n         */\n        SaveStockCounting = 8,\n        \n        /**\n         * The PostStockCounting member.\n         */\n        PostStockCounting = 9,\n        \n        /**\n         * The CreateStockCounting member.\n         */\n        CreateStockCounting = 10,\n        \n        /**\n         * The CreatePurchaseOrder member.\n         */\n        CreatePurchaseOrder = 11,\n        \n        /**\n         * The SavePurchaseOrder member.\n         */\n        SavePurchaseOrder = 12\n    }\n    \n    /**\n     * InventoryInboundOutboundSourceDocumentStatus enum type.\n     */\n    export enum InventoryInboundOutboundSourceDocumentStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Requested member.\n         */\n        Requested = 1,\n        \n        /**\n         * The Shipped member.\n         */\n        Shipped = 2,\n        \n        /**\n         * The PartiallyShipped member.\n         */\n        PartiallyShipped = 3,\n        \n        /**\n         * The Received member.\n         */\n        Received = 4,\n        \n        /**\n         * The PartiallyReceived member.\n         */\n        PartiallyReceived = 5,\n        \n        /**\n         * The Cancelled member.\n         */\n        Cancelled = 6,\n        \n        /**\n         * The Posted member.\n         */\n        Posted = 8,\n        \n        /**\n         * The Committed member.\n         */\n        Committed = 9,\n        \n        /**\n         * The Created member.\n         */\n        Created = 10\n    }\n    \n    /**\n     * InventorySourceDocumentType enum type.\n     */\n    export enum InventorySourceDocumentType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The PurchaseOrder member.\n         */\n        PurchaseOrder = 1,\n        \n        /**\n         * The TransferOrder member.\n         */\n        TransferOrder = 2,\n        \n        /**\n         * The InventoryAdjustment member.\n         */\n        InventoryAdjustment = 3,\n        \n        /**\n         * The InventoryTransfer member.\n         */\n        InventoryTransfer = 4,\n        \n        /**\n         * The StockCounting member.\n         */\n        StockCounting = 5\n    }\n    \n    /**\n     * InventoryInboundOutboundDocumentState enum type.\n     */\n    export enum InventoryInboundOutboundDocumentState {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Active member.\n         */\n        Active = 1,\n        \n        /**\n         * The Complete member.\n         */\n        Complete = 2,\n        \n        /**\n         * The Draft member.\n         */\n        Draft = 3\n    }\n    \n    /**\n     * ReceiptNumberResetType enum type.\n     */\n    export enum ReceiptNumberResetType {\n      \n        /**\n         * The SingleTime member.\n         */\n        SingleTime = 0,\n        \n        /**\n         * The YearlyRecurrence member.\n         */\n        YearlyRecurrence = 1\n    }\n    \n    /**\n     * PeriodUnit enum type.\n     */\n    export enum PeriodUnit {\n      \n        /**\n         * The Day member.\n         */\n        Day = 0,\n        \n        /**\n         * The Week member.\n         */\n        Week = 1,\n        \n        /**\n         * The Month member.\n         */\n        Month = 2,\n        \n        /**\n         * The Year member.\n         */\n        Year = 3,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * WarrantyPriceRangeBaseType enum type.\n     */\n    export enum WarrantyPriceRangeBaseType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The BasePrice member.\n         */\n        BasePrice = 1,\n        \n        /**\n         * The SellingPrice member.\n         */\n        SellingPrice = 2\n    }\n    \n    /**\n     * LogOnKeyboardType enum type.\n     */\n    export enum LogOnKeyboardType {\n      \n        /**\n         * The OSKeyboard member.\n         */\n        OSKeyboard = 0,\n        \n        /**\n         * The Numpad member.\n         */\n        Numpad = 1,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * LogOnLayoutType enum type.\n     */\n    export enum LogOnLayoutType {\n      \n        /**\n         * The Centered member.\n         */\n        Centered = 0,\n        \n        /**\n         * The Right member.\n         */\n        Right = 1,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * DeliveryModeTypeFilter enum type.\n     */\n    export enum DeliveryModeTypeFilter {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Shipping member.\n         */\n        Shipping = 1,\n        \n        /**\n         * The Pickup member.\n         */\n        Pickup = 2\n    }\n    \n    /**\n     * InventoryDocumentValidationResultSeverity enum type.\n     */\n    export enum InventoryDocumentValidationResultSeverity {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Informational member.\n         */\n        Informational = 1,\n        \n        /**\n         * The Warning member.\n         */\n        Warning = 2,\n        \n        /**\n         * The Error member.\n         */\n        Error = 3\n    }\n    \n    /**\n     * InventoryDocumentOverreceivingErrors enum type.\n     */\n    export enum InventoryDocumentOverreceivingErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The QuantityExceededAllowed member.\n         */\n        QuantityExceededAllowed,\n        \n        /**\n         * The QuantityExceededAllowedWithinOverreceivingTolerance member.\n         */\n        QuantityExceededAllowedWithinOverreceivingTolerance,\n        \n        /**\n         * The QuantityExceededOverreceivingTolerance member.\n         */\n        QuantityExceededOverreceivingTolerance\n    }\n    \n    /**\n     * InventoryDocumentSerialNumberErrors enum type.\n     */\n    export enum InventoryDocumentSerialNumberErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The RequiredSerialNumberNotProvided member.\n         */\n        RequiredSerialNumberNotProvided,\n        \n        /**\n         * The DuplicateSerialNumberIsNotAllowed member.\n         */\n        DuplicateSerialNumberIsNotAllowed,\n        \n        /**\n         * The RequiredSerialNumberValidationNotProvided member.\n         */\n        RequiredSerialNumberValidationNotProvided,\n        \n        /**\n         * The SerialNumberNotAvailable member.\n         */\n        SerialNumberNotAvailable\n    }\n    \n    /**\n     * EmployeeIdentityType enum type.\n     */\n    export enum EmployeeIdentityType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The CommerceIdentity member.\n         */\n        CommerceIdentity = 1,\n        \n        /**\n         * The AadIdentity member.\n         */\n        AadIdentity = 2\n    }\n    \n    /**\n     * FulfillmentOperationType enum type.\n     */\n    export enum FulfillmentOperationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Pick member.\n         */\n        Pick = 1,\n        \n        /**\n         * The Pack member.\n         */\n        Pack = 2,\n        \n        /**\n         * The Ship member.\n         */\n        Ship = 3,\n        \n        /**\n         * The Pickup member.\n         */\n        Pickup = 4,\n        \n        /**\n         * The Reject member.\n         */\n        Reject = 5\n    }\n    \n    /**\n     * PaymentStatus enum type.\n     */\n    export enum PaymentStatus {\n      \n        /**\n         * The NotSubmitted member.\n         */\n        NotSubmitted = 0,\n        \n        /**\n         * The Authorized member.\n         */\n        Authorized = 1,\n        \n        /**\n         * The Declined member.\n         */\n        Declined = 2,\n        \n        /**\n         * The Posted member.\n         */\n        Posted = 3,\n        \n        /**\n         * The Paid member.\n         */\n        Paid = 4\n    }\n    \n    /**\n     * UserAlertSourceType enum type.\n     */\n    export enum UserAlertSourceType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Inventory_SerialNumberMissing member.\n         */\n        Inventory_SerialNumberMissing = 1,\n        \n        /**\n         * The Inventory_SerialNumberInsufficientStock member.\n         */\n        Inventory_SerialNumberInsufficientStock = 2\n    }\n    \n    /**\n     * CustomerOrderMode enum type.\n     */\n    export enum CustomerOrderMode {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The CustomerOrderCreateOrEdit member.\n         */\n        CustomerOrderCreateOrEdit = 1,\n        \n        /**\n         * The OrderRecalled member.\n         */\n        OrderRecalled = 2,\n        \n        /**\n         * The Pickup member.\n         */\n        Pickup = 3,\n        \n        /**\n         * The Return member.\n         */\n        Return = 4,\n        \n        /**\n         * The Cancellation member.\n         */\n        Cancellation = 5,\n        \n        /**\n         * The QuoteCreateOrEdit member.\n         */\n        QuoteCreateOrEdit = 6\n    }\n    \n    /**\n     * InventoryValidationErrors enum type.\n     */\n    export enum InventoryValidationErrors {\n      \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryAvailableQuantitiesRecordsExceedLimit member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryAvailableQuantitiesRecordsExceedLimit,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllNotAllowedForAdvancedWarehouse member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllNotAllowedForAdvancedWarehouse,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_PurchaseOrderUnderDeliveryNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_PurchaseOrderUnderDeliveryNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseLineNotAllowedWhenReceiveNowQuantityIsZero member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseLineNotAllowedWhenReceiveNowQuantityIsZero,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseOrderLineNotAllowWhenReceiveQuantityUnderTolerance member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseOrderLineNotAllowWhenReceiveQuantityUnderTolerance,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CloseTransferLineNotAllowedWhenShipNowQuantityIsZero member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CloseTransferLineNotAllowedWhenShipNowQuantityIsZero,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllForAdvancedWarehouseWithoutIssueLocation member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllForAdvancedWarehouseWithoutIssueLocation,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ProductBehaviorMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ProductBehaviorMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_StockCountJournal_JournalNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_StockCountJournal_JournalNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_NoLineToCommit member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_NoLineToCommit,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_Journal_Name_Search_Criteria_Not_Valid member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_Journal_Name_Search_Criteria_Not_Valid,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_Movement_Journal_Location_Dimension_Missing_For_Product member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_Movement_Journal_Location_Dimension_Missing_For_Product,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateEmptyLinesNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateEmptyLinesNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SearchCriteriaContainsWarehouseLocationId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_SearchCriteriaContainsWarehouseLocationId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultIssueLocationNotFoundForWarehouse member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultIssueLocationNotFoundForWarehouse,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultReceiptLocationNotFoundForWarehouse member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultReceiptLocationNotFoundForWarehouse,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CommitDocumentFailToDeserialize member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CommitDocumentFailToDeserialize,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineCannotBeDeleted member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineCannotBeDeleted,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DeliveryModeTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DeliveryModeTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotReturnMultipleVendors member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotReturnMultipleVendors,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ActionNotSupportedWhenChangeManagementIsEnabled member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ActionNotSupportedWhenChangeManagementIsEnabled,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidTransferOrderJournalXmlStr member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidTransferOrderJournalXmlStr,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotSupportedDocumentStateInSearchCriteria member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_NotSupportedDocumentStateInSearchCriteria,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotSupportedSearchCriteriaWhenSearchInventoryDocumentLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_NotSupportedSearchCriteriaWhenSearchInventoryDocumentLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLineQuantityExceedsLimit member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLineQuantityExceedsLimit,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_WarehouseNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_WarehouseNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_BulkInventoryUpdateCountExceedsLimit member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_BulkInventoryUpdateCountExceedsLimit,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForNonDefaultWarehouseNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForNonDefaultWarehouseNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForMasterProductNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForMasterProductNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityDuplicatedQueryItemNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityDuplicatedQueryItemNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForLocationControlledProductNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForLocationControlledProductNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RealtimeAccuracyNotSuppoted member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RealtimeAccuracyNotSuppoted,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductWarehouseQuantitiesIsEmpty member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductWarehouseQuantitiesIsEmpty,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityExceedValidRange member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityExceedValidRange,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SalesParametersNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Inventory_SalesParametersNotFound\n    }\n    \n    /**\n     * InventoryJournalPosAdjustmentType enum type.\n     */\n    export enum InventoryJournalPosAdjustmentType {\n      \n        /**\n         * The In member.\n         */\n        In = 0,\n        \n        /**\n         * The Out member.\n         */\n        Out = 1\n    }\n    \n    /**\n     * ProductDataValidationErrors enum type.\n     */\n    export enum ProductDataValidationErrors {\n      \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidNumberOfProductBehaviorsFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidNumberOfProductBehaviorsFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductBehaviorNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductBehaviorNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_KitComponentNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_KitComponentNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidProductDataXml member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidProductDataXml,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemsNotFoundOnTransaction member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemsNotFoundOnTransaction,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DuplicatePriceLookupContextForSameProduct member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DuplicatePriceLookupContextForSameProduct,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SearchFailedForClientError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SearchFailedForClientError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SearchIndexIsNotReady member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SearchIndexIsNotReady,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SearchIndexIsNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SearchIndexIsNotFound\n    }\n    \n    /**\n     * MediaType enum type.\n     */\n    export enum MediaType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Image member.\n         */\n        Image = 1,\n        \n        /**\n         * The Video member.\n         */\n        Video = 2,\n        \n        /**\n         * The File member.\n         */\n        File = 3\n    }\n    \n    /**\n     * CheckoutLocation enum type.\n     */\n    export enum CheckoutLocation {\n      \n        /**\n         * The Default member.\n         */\n        Default = 0,\n        \n        /**\n         * The Local member.\n         */\n        Local = 1\n    }\n    \n    /**\n     * CountryRegionISOCode enum type.\n     */\n    export enum CountryRegionISOCode {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The AU member.\n         */\n        AU = 1,\n        \n        /**\n         * The AT member.\n         */\n        AT = 2,\n        \n        /**\n         * The BE member.\n         */\n        BE = 3,\n        \n        /**\n         * The BR member.\n         */\n        BR = 4,\n        \n        /**\n         * The CA member.\n         */\n        CA = 5,\n        \n        /**\n         * The CN member.\n         */\n        CN = 6,\n        \n        /**\n         * The CZ member.\n         */\n        CZ = 7,\n        \n        /**\n         * The DK member.\n         */\n        DK = 8,\n        \n        /**\n         * The EE member.\n         */\n        EE = 9,\n        \n        /**\n         * The FI member.\n         */\n        FI = 10,\n        \n        /**\n         * The FR member.\n         */\n        FR = 11,\n        \n        /**\n         * The DE member.\n         */\n        DE = 12,\n        \n        /**\n         * The HU member.\n         */\n        HU = 13,\n        \n        /**\n         * The IS member.\n         */\n        IS = 14,\n        \n        /**\n         * The IN member.\n         */\n        IN = 15,\n        \n        /**\n         * The IE member.\n         */\n        IE = 16,\n        \n        /**\n         * The IL member.\n         */\n        IL = 17,\n        \n        /**\n         * The IT member.\n         */\n        IT = 18,\n        \n        /**\n         * The JP member.\n         */\n        JP = 19,\n        \n        /**\n         * The LV member.\n         */\n        LV = 20,\n        \n        /**\n         * The LT member.\n         */\n        LT = 21,\n        \n        /**\n         * The MY member.\n         */\n        MY = 22,\n        \n        /**\n         * The MX member.\n         */\n        MX = 23,\n        \n        /**\n         * The NL member.\n         */\n        NL = 24,\n        \n        /**\n         * The NZ member.\n         */\n        NZ = 25,\n        \n        /**\n         * The NO member.\n         */\n        NO = 26,\n        \n        /**\n         * The PL member.\n         */\n        PL = 27,\n        \n        /**\n         * The RU member.\n         */\n        RU = 28,\n        \n        /**\n         * The SA member.\n         */\n        SA = 29,\n        \n        /**\n         * The SG member.\n         */\n        SG = 30,\n        \n        /**\n         * The ZA member.\n         */\n        ZA = 31,\n        \n        /**\n         * The ES member.\n         */\n        ES = 32,\n        \n        /**\n         * The SE member.\n         */\n        SE = 33,\n        \n        /**\n         * The CH member.\n         */\n        CH = 34,\n        \n        /**\n         * The TH member.\n         */\n        TH = 35,\n        \n        /**\n         * The TR member.\n         */\n        TR = 36,\n        \n        /**\n         * The GB member.\n         */\n        GB = 37,\n        \n        /**\n         * The US member.\n         */\n        US = 38,\n        \n        /**\n         * The PH member.\n         */\n        PH = 39,\n        \n        /**\n         * The AE member.\n         */\n        AE = 40,\n        \n        /**\n         * The QA member.\n         */\n        QA = 41,\n        \n        /**\n         * The OM member.\n         */\n        OM = 42,\n        \n        /**\n         * The HR member.\n         */\n        HR = 43\n    }\n    \n    /**\n     * AddressOperationType enum type.\n     */\n    export enum AddressOperationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Create member.\n         */\n        Create = 1,\n        \n        /**\n         * The Update member.\n         */\n        Update = 2,\n        \n        /**\n         * The Deactivate member.\n         */\n        Deactivate = 3\n    }\n    \n    /**\n     * AddressType enum type.\n     */\n    export enum AddressType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Invoice member.\n         */\n        Invoice = 1,\n        \n        /**\n         * The Delivery member.\n         */\n        Delivery = 2,\n        \n        /**\n         * The AltDlv member.\n         */\n        AltDlv = 3,\n        \n        /**\n         * The SWIFT member.\n         */\n        SWIFT = 4,\n        \n        /**\n         * The Payment member.\n         */\n        Payment = 5,\n        \n        /**\n         * The Service member.\n         */\n        Service = 6,\n        \n        /**\n         * The Home member.\n         */\n        Home = 7,\n        \n        /**\n         * The Other member.\n         */\n        Other = 8,\n        \n        /**\n         * The Business member.\n         */\n        Business = 9,\n        \n        /**\n         * The RemitTo member.\n         */\n        RemitTo = 10,\n        \n        /**\n         * The ShipCarrierThirdPartyShipping member.\n         */\n        ShipCarrierThirdPartyShipping = 11,\n        \n        /**\n         * The Statement member.\n         */\n        Statement = 12,\n        \n        /**\n         * The FixedAsset member.\n         */\n        FixedAsset = 15,\n        \n        /**\n         * The Onetime member.\n         */\n        Onetime = 16,\n        \n        /**\n         * The Recruit member.\n         */\n        Recruit = 17,\n        \n        /**\n         * The SMS member.\n         */\n        SMS = 18,\n        \n        /**\n         * The Lading_W member.\n         */\n        Lading_W = 101,\n        \n        /**\n         * The Unlading_W member.\n         */\n        Unlading_W = 102,\n        \n        /**\n         * The Consignment_IN member.\n         */\n        Consignment_IN = 103\n    }\n    \n    /**\n     * AttributeDataType enum type.\n     */\n    export enum AttributeDataType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Currency member.\n         */\n        Currency = 1,\n        \n        /**\n         * The DateTime member.\n         */\n        DateTime = 2,\n        \n        /**\n         * The Decimal member.\n         */\n        Decimal = 3,\n        \n        /**\n         * The Integer member.\n         */\n        Integer = 4,\n        \n        /**\n         * The Text member.\n         */\n        Text = 5,\n        \n        /**\n         * The TrueFalse member.\n         */\n        TrueFalse = 6,\n        \n        /**\n         * The Video member.\n         */\n        Video = 40,\n        \n        /**\n         * The Image member.\n         */\n        Image = 41\n    }\n    \n    /**\n     * BarcodeEntryMethodType enum type.\n     */\n    export enum BarcodeEntryMethodType {\n      \n        /**\n         * The SingleScanned member.\n         */\n        SingleScanned = 0,\n        \n        /**\n         * The MultipleScanned member.\n         */\n        MultipleScanned = 1,\n        \n        /**\n         * The ManuallyEntered member.\n         */\n        ManuallyEntered = 2,\n        \n        /**\n         * The Selected member.\n         */\n        Selected = 3\n    }\n    \n    /**\n     * BarcodeMaskType enum type.\n     */\n    export enum BarcodeMaskType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Item member.\n         */\n        Item = 1,\n        \n        /**\n         * The Customer member.\n         */\n        Customer = 2,\n        \n        /**\n         * The Employee member.\n         */\n        Employee = 3,\n        \n        /**\n         * The Coupon member.\n         */\n        Coupon = 4,\n        \n        /**\n         * The DataEntry member.\n         */\n        DataEntry = 5,\n        \n        /**\n         * The Salesperson member.\n         */\n        Salesperson = 6,\n        \n        /**\n         * The Pharmacy member.\n         */\n        Pharmacy = 7,\n        \n        /**\n         * The DiscountCode member.\n         */\n        DiscountCode = 8,\n        \n        /**\n         * The GiftCard member.\n         */\n        GiftCard = 9,\n        \n        /**\n         * The LoyaltyCard member.\n         */\n        LoyaltyCard = 10\n    }\n    \n    /**\n     * TransactionStatus enum type.\n     */\n    export enum TransactionStatus {\n      \n        /**\n         * The Normal member.\n         */\n        Normal = 0,\n        \n        /**\n         * The Voided member.\n         */\n        Voided = 1,\n        \n        /**\n         * The Posted member.\n         */\n        Posted = 2,\n        \n        /**\n         * The Concluded member.\n         */\n        Concluded = 3,\n        \n        /**\n         * The Canceled member.\n         */\n        Canceled = 4,\n        \n        /**\n         * The OnHold member.\n         */\n        OnHold = 5,\n        \n        /**\n         * The Training member.\n         */\n        Training = 6,\n        \n        /**\n         * The Aborted member.\n         */\n        Aborted = 7\n    }\n    \n    /**\n     * GiftCardOperationType enum type.\n     */\n    export enum GiftCardOperationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Issue member.\n         */\n        Issue = 1,\n        \n        /**\n         * The AddTo member.\n         */\n        AddTo = 2,\n        \n        /**\n         * The CashOut member.\n         */\n        CashOut = 3\n    }\n    \n    /**\n     * RetailGiftCardType enum type.\n     */\n    export enum RetailGiftCardType {\n      \n        /**\n         * The Unknown member.\n         */\n        Unknown = 0,\n        \n        /**\n         * The InternalGiftCard member.\n         */\n        InternalGiftCard = 1,\n        \n        /**\n         * The ExternalGiftCard member.\n         */\n        ExternalGiftCard = 2\n    }\n    \n    /**\n     * PriceMethod enum type.\n     */\n    export enum PriceMethod {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Fixed member.\n         */\n        Fixed = 1,\n        \n        /**\n         * The AmountOff member.\n         */\n        AmountOff = 2,\n        \n        /**\n         * The PercentOff member.\n         */\n        PercentOff = 3\n    }\n    \n    /**\n     * ManualPriceEntryType enum type.\n     */\n    export enum ManualPriceEntryType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The PriceOverridden member.\n         */\n        PriceOverridden = 1,\n        \n        /**\n         * The PriceKeyedIn member.\n         */\n        PriceKeyedIn = 2\n    }\n    \n    /**\n     * ConcurrencyMode enum type.\n     */\n    export enum ConcurrencyMode {\n      \n        /**\n         * The Exclusive member.\n         */\n        Exclusive = 0,\n        \n        /**\n         * The BestPrice member.\n         */\n        BestPrice = 1,\n        \n        /**\n         * The Compounded member.\n         */\n        Compounded = 2,\n        \n        /**\n         * The AlwaysApply member.\n         */\n        AlwaysApply = 3,\n        \n        /**\n         * The HighestCombinedPricingPriority member.\n         */\n        HighestCombinedPricingPriority = 4\n    }\n    \n    /**\n     * SalesAgreementLineType enum type.\n     */\n    export enum SalesAgreementLineType {\n      \n        /**\n         * The ProductQuantity member.\n         */\n        ProductQuantity = 0,\n        \n        /**\n         * The ProductVolume member.\n         */\n        ProductVolume = 1,\n        \n        /**\n         * The ProductCategory member.\n         */\n        ProductCategory = 2,\n        \n        /**\n         * The ProductRootCategory member.\n         */\n        ProductRootCategory = 3\n    }\n    \n    /**\n     * DiscountLineType enum type.\n     */\n    export enum DiscountLineType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The CustomerDiscount member.\n         */\n        CustomerDiscount = 1,\n        \n        /**\n         * The PeriodicDiscount member.\n         */\n        PeriodicDiscount = 2,\n        \n        /**\n         * The ManualDiscount member.\n         */\n        ManualDiscount = 3,\n        \n        /**\n         * The LoyaltyDiscount member.\n         */\n        LoyaltyDiscount = 4,\n        \n        /**\n         * The TenderTypeDiscount member.\n         */\n        TenderTypeDiscount = 5\n    }\n    \n    /**\n     * ManualDiscountType enum type.\n     */\n    export enum ManualDiscountType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The LineDiscountAmount member.\n         */\n        LineDiscountAmount = 1,\n        \n        /**\n         * The LineDiscountPercent member.\n         */\n        LineDiscountPercent = 2,\n        \n        /**\n         * The TotalDiscountAmount member.\n         */\n        TotalDiscountAmount = 3,\n        \n        /**\n         * The TotalDiscountPercent member.\n         */\n        TotalDiscountPercent = 4\n    }\n    \n    /**\n     * CustomerDiscountType enum type.\n     */\n    export enum CustomerDiscountType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The LineDiscount member.\n         */\n        LineDiscount = 1,\n        \n        /**\n         * The MultilineDiscount member.\n         */\n        MultilineDiscount = 2,\n        \n        /**\n         * The TotalDiscount member.\n         */\n        TotalDiscount = 3\n    }\n    \n    /**\n     * ReasonCodeInputType enum type.\n     */\n    export enum ReasonCodeInputType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The SubCode member.\n         */\n        SubCode = 1,\n        \n        /**\n         * The Date member.\n         */\n        Date = 2,\n        \n        /**\n         * The Numeric member.\n         */\n        Numeric = 3,\n        \n        /**\n         * The Item member.\n         */\n        Item = 4,\n        \n        /**\n         * The Customer member.\n         */\n        Customer = 5,\n        \n        /**\n         * The Staff member.\n         */\n        Staff = 6,\n        \n        /**\n         * The Text member.\n         */\n        Text = 9,\n        \n        /**\n         * The SubCodeButtons member.\n         */\n        SubCodeButtons = 10,\n        \n        /**\n         * The AgeLimit member.\n         */\n        AgeLimit = 11,\n        \n        /**\n         * The CompositeSubCodes member.\n         */\n        CompositeSubCodes = 12\n    }\n    \n    /**\n     * ReasonCodeLineType enum type.\n     */\n    export enum ReasonCodeLineType {\n      \n        /**\n         * The Header member.\n         */\n        Header = 0,\n        \n        /**\n         * The Sales member.\n         */\n        Sales = 1,\n        \n        /**\n         * The Payment member.\n         */\n        Payment = 2,\n        \n        /**\n         * The IncomeExpense member.\n         */\n        IncomeExpense = 3,\n        \n        /**\n         * The NoSale member.\n         */\n        NoSale = 4,\n        \n        /**\n         * The Affiliation member.\n         */\n        Affiliation = 5,\n        \n        /**\n         * The Fiscal member.\n         */\n        Fiscal = 6\n    }\n    \n    /**\n     * ChargeModule enum type.\n     */\n    export enum ChargeModule {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Sales member.\n         */\n        Sales = 1,\n        \n        /**\n         * The Retail member.\n         */\n        Retail = 3\n    }\n    \n    /**\n     * ChargeType enum type.\n     */\n    export enum ChargeType {\n      \n        /**\n         * The ManualCharge member.\n         */\n        ManualCharge = 0,\n        \n        /**\n         * The PriceCharge member.\n         */\n        PriceCharge = 1,\n        \n        /**\n         * The AutoCharge member.\n         */\n        AutoCharge = 2\n    }\n    \n    /**\n     * ChargeMethod enum type.\n     */\n    export enum ChargeMethod {\n      \n        /**\n         * The Fixed member.\n         */\n        Fixed = 0,\n        \n        /**\n         * The Pieces member.\n         */\n        Pieces = 1,\n        \n        /**\n         * The Percent member.\n         */\n        Percent = 2,\n        \n        /**\n         * The InterCompanyPercent member.\n         */\n        InterCompanyPercent = 3,\n        \n        /**\n         * The External member.\n         */\n        External = 4,\n        \n        /**\n         * The Proportional member.\n         */\n        Proportional = 5,\n        \n        /**\n         * The UnitSpecified member.\n         */\n        UnitSpecified = 6,\n        \n        /**\n         * The UnitSpecifiedMatch member.\n         */\n        UnitSpecifiedMatch = 7\n    }\n    \n    /**\n     * CustType enum type.\n     */\n    export enum CustType {\n      \n        /**\n         * The Item member.\n         */\n        Item = 0,\n        \n        /**\n         * The LedgerAccount member.\n         */\n        LedgerAccount = 1,\n        \n        /**\n         * The CustVend member.\n         */\n        CustVend = 2\n    }\n    \n    /**\n     * CashType enum type.\n     */\n    export enum CashType {\n      \n        /**\n         * The Coin member.\n         */\n        Coin = 0,\n        \n        /**\n         * The Note member.\n         */\n        Note = 1\n    }\n    \n    /**\n     * IncomeExpenseAccountType enum type.\n     */\n    export enum IncomeExpenseAccountType {\n      \n        /**\n         * The Income member.\n         */\n        Income = 0,\n        \n        /**\n         * The Expense member.\n         */\n        Expense = 1,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * TenderLineStatus enum type.\n     */\n    export enum TenderLineStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The NotProcessed member.\n         */\n        NotProcessed = 1,\n        \n        /**\n         * The PendingCommit member.\n         */\n        PendingCommit = 2,\n        \n        /**\n         * The Voided member.\n         */\n        Voided = 3,\n        \n        /**\n         * The Committed member.\n         */\n        Committed = 4,\n        \n        /**\n         * The Historical member.\n         */\n        Historical = 5\n    }\n    \n    /**\n     * TenderLineVoidStatus enum type.\n     */\n    export enum TenderLineVoidStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The NormalVoid member.\n         */\n        NormalVoid = 1,\n        \n        /**\n         * The ForceVoided member.\n         */\n        ForceVoided = 2,\n        \n        /**\n         * The ForceVoidReconciled member.\n         */\n        ForceVoidReconciled = 3\n    }\n    \n    /**\n     * PaymentProcessingType enum type.\n     */\n    export enum PaymentProcessingType {\n      \n        /**\n         * The Immediate member.\n         */\n        Immediate = 0,\n        \n        /**\n         * The Deferred member.\n         */\n        Deferred = 1,\n        \n        /**\n         * The LinkedRefund member.\n         */\n        LinkedRefund = 2,\n        \n        /**\n         * The Recalled member.\n         */\n        Recalled = 3\n    }\n    \n    /**\n     * CreditCardProcessorStatus enum type.\n     */\n    export enum CreditCardProcessorStatus {\n      \n        /**\n         * The NA member.\n         */\n        NA = 0,\n        \n        /**\n         * The Approved member.\n         */\n        Approved = 1,\n        \n        /**\n         * The Declined member.\n         */\n        Declined = 2,\n        \n        /**\n         * The Error member.\n         */\n        Error = 3\n    }\n    \n    /**\n     * ContactInformationType enum type.\n     */\n    export enum ContactInformationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Phone member.\n         */\n        Phone = 1,\n        \n        /**\n         * The Email member.\n         */\n        Email = 2,\n        \n        /**\n         * The Url member.\n         */\n        Url = 3,\n        \n        /**\n         * The Telex member.\n         */\n        Telex = 4,\n        \n        /**\n         * The Fax member.\n         */\n        Fax = 5,\n        \n        /**\n         * The CellularPhone member.\n         */\n        CellularPhone = 6\n    }\n    \n    /**\n     * CommerceEntityDataLevel enum type.\n     */\n    export enum CommerceEntityDataLevel {\n      \n        /**\n         * The Identity member.\n         */\n        Identity = 0,\n        \n        /**\n         * The Minimal member.\n         */\n        Minimal = 1,\n        \n        /**\n         * The Standard member.\n         */\n        Standard = 2,\n        \n        /**\n         * The Extended member.\n         */\n        Extended = 3,\n        \n        /**\n         * The Complete member.\n         */\n        Complete = 4\n    }\n    \n    /**\n     * ProductPropertyType enum type.\n     */\n    export enum ProductPropertyType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Currency member.\n         */\n        Currency = 1,\n        \n        /**\n         * The DateTime member.\n         */\n        DateTime = 2,\n        \n        /**\n         * The Decimal member.\n         */\n        Decimal = 3,\n        \n        /**\n         * The Integer member.\n         */\n        Integer = 4,\n        \n        /**\n         * The Text member.\n         */\n        Text = 5,\n        \n        /**\n         * The Boolean member.\n         */\n        Boolean = 6,\n        \n        /**\n         * The Video member.\n         */\n        Video = 40,\n        \n        /**\n         * The Image member.\n         */\n        Image = 41\n    }\n    \n    /**\n     * AttributeGroupType enum type.\n     */\n    export enum AttributeGroupType {\n      \n        /**\n         * The Default member.\n         */\n        Default = 0,\n        \n        /**\n         * The Specification member.\n         */\n        Specification = 1\n    }\n    \n    /**\n     * ProductSource enum type.\n     */\n    export enum ProductSource {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Local member.\n         */\n        Local = 1,\n        \n        /**\n         * The Remote member.\n         */\n        Remote = 2\n    }\n    \n    /**\n     * RoundingMethod enum type.\n     */\n    export enum RoundingMethod {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Nearest member.\n         */\n        Nearest = 1,\n        \n        /**\n         * The Up member.\n         */\n        Up = 2,\n        \n        /**\n         * The Down member.\n         */\n        Down = 3\n    }\n    \n    /**\n     * LineMultilineDiscountOnItem enum type.\n     */\n    export enum LineMultilineDiscountOnItem {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Line member.\n         */\n        Line = 1,\n        \n        /**\n         * The Multiline member.\n         */\n        Multiline = 2,\n        \n        /**\n         * The Both member.\n         */\n        Both = 3\n    }\n    \n    /**\n     * LoyaltyRewardPointEntryType enum type.\n     */\n    export enum LoyaltyRewardPointEntryType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Earn member.\n         */\n        Earn = 1,\n        \n        /**\n         * The Redeem member.\n         */\n        Redeem = 2,\n        \n        /**\n         * The ReturnEarned member.\n         */\n        ReturnEarned = 3,\n        \n        /**\n         * The Adjust member.\n         */\n        Adjust = 4,\n        \n        /**\n         * The Refund member.\n         */\n        Refund = 5\n    }\n    \n    /**\n     * LoyaltyRewardPointType enum type.\n     */\n    export enum LoyaltyRewardPointType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Quantity member.\n         */\n        Quantity = 1,\n        \n        /**\n         * The Amount member.\n         */\n        Amount = 2\n    }\n    \n    /**\n     * TransactionType enum type.\n     */\n    export enum TransactionType {\n      \n        /**\n         * The LogOff member.\n         */\n        LogOff = 0,\n        \n        /**\n         * The LogOn member.\n         */\n        LogOn = 1,\n        \n        /**\n         * The Sales member.\n         */\n        Sales = 2,\n        \n        /**\n         * The Payment member.\n         */\n        Payment = 3,\n        \n        /**\n         * The RemoveTender member.\n         */\n        RemoveTender = 4,\n        \n        /**\n         * The FloatEntry member.\n         */\n        FloatEntry = 5,\n        \n        /**\n         * The ChangeTender member.\n         */\n        ChangeTender = 6,\n        \n        /**\n         * The TenderDeclaration member.\n         */\n        TenderDeclaration = 7,\n        \n        /**\n         * The OpenDrawer member.\n         */\n        OpenDrawer = 9,\n        \n        /**\n         * The SalesOrder member.\n         */\n        SalesOrder = 14,\n        \n        /**\n         * The SalesInvoice member.\n         */\n        SalesInvoice = 15,\n        \n        /**\n         * The BankDrop member.\n         */\n        BankDrop = 16,\n        \n        /**\n         * The SafeDrop member.\n         */\n        SafeDrop = 17,\n        \n        /**\n         * The IncomeExpense member.\n         */\n        IncomeExpense = 18,\n        \n        /**\n         * The CustomerOrder member.\n         */\n        CustomerOrder = 19,\n        \n        /**\n         * The StartingAmount member.\n         */\n        StartingAmount = 20,\n        \n        /**\n         * The SuspendShift member.\n         */\n        SuspendShift = 21,\n        \n        /**\n         * The BlindCloseShift member.\n         */\n        BlindCloseShift = 22,\n        \n        /**\n         * The CloseShift member.\n         */\n        CloseShift = 23,\n        \n        /**\n         * The PrintX member.\n         */\n        PrintX = 24,\n        \n        /**\n         * The PrintZ member.\n         */\n        PrintZ = 25,\n        \n        /**\n         * The PendingSalesOrder member.\n         */\n        PendingSalesOrder = 27,\n        \n        /**\n         * The KitDisassembly member.\n         */\n        KitDisassembly = 28,\n        \n        /**\n         * The AsyncCustomerQuote member.\n         */\n        AsyncCustomerQuote = 31,\n        \n        /**\n         * The AsyncCustomerOrder member.\n         */\n        AsyncCustomerOrder = 33,\n        \n        /**\n         * The ForceDeleteShift member.\n         */\n        ForceDeleteShift = 34,\n        \n        /**\n         * The GiftCardInquiry member.\n         */\n        GiftCardInquiry = 35,\n        \n        /**\n         * The SuspendedTransaction member.\n         */\n        SuspendedTransaction = 36,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * CashManagementTransactionContext enum type.\n     */\n    export enum CashManagementTransactionContext {\n      \n        /**\n         * The Unknown member.\n         */\n        Unknown = 0,\n        \n        /**\n         * The Shift member.\n         */\n        Shift = 1,\n        \n        /**\n         * The Safe member.\n         */\n        Safe = 2,\n        \n        /**\n         * The Bank member.\n         */\n        Bank = 3\n    }\n    \n    /**\n     * CustomerTimelineItemEntityType enum type.\n     */\n    export enum CustomerTimelineItemEntityType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Activity member.\n         */\n        Activity = 1,\n        \n        /**\n         * The Note member.\n         */\n        Note = 2,\n        \n        /**\n         * The UnifiedActivity member.\n         */\n        UnifiedActivity = 3\n    }\n    \n    /**\n     * EmployeePermissionsAllowPrintingReceiptCopy enum type.\n     */\n    export enum EmployeePermissionsAllowPrintingReceiptCopy {\n      \n        /**\n         * The Always member.\n         */\n        Always = 0,\n        \n        /**\n         * The OnlyOnce member.\n         */\n        OnlyOnce = 1,\n        \n        /**\n         * The OnlyOnceHqAvailable member.\n         */\n        OnlyOnceHqAvailable = 2,\n        \n        /**\n         * The Never member.\n         */\n        Never = 3\n    }\n    \n    /**\n     * AddressFormatLineType enum type.\n     */\n    export enum AddressFormatLineType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The ZipCode member.\n         */\n        ZipCode = 1,\n        \n        /**\n         * The City member.\n         */\n        City = 2,\n        \n        /**\n         * The County member.\n         */\n        County = 3,\n        \n        /**\n         * The State member.\n         */\n        State = 4,\n        \n        /**\n         * The CountryRegion member.\n         */\n        CountryRegion = 5,\n        \n        /**\n         * The StreetName member.\n         */\n        StreetName = 6,\n        \n        /**\n         * The District member.\n         */\n        District = 7,\n        \n        /**\n         * The StreetNumber member.\n         */\n        StreetNumber = 8,\n        \n        /**\n         * The BuildingCompliment member.\n         */\n        BuildingCompliment = 9,\n        \n        /**\n         * The Postbox member.\n         */\n        Postbox = 10,\n        \n        /**\n         * The House_RU member.\n         */\n        House_RU = 21,\n        \n        /**\n         * The Flat_RU member.\n         */\n        Flat_RU = 22,\n        \n        /**\n         * The CountryOKSMCode_RU member.\n         */\n        CountryOKSMCode_RU = 23\n    }\n    \n    /**\n     * CustomerOrderSynchronizationMode enum type.\n     */\n    export enum CustomerOrderSynchronizationMode {\n      \n        /**\n         * The Synchronous member.\n         */\n        Synchronous = 0,\n        \n        /**\n         * The Asynchronous member.\n         */\n        Asynchronous = 1,\n        \n        /**\n         * The RealTimeWithAsyncFallback member.\n         */\n        RealTimeWithAsyncFallback = 2\n    }\n    \n    /**\n     * StatementMethod enum type.\n     */\n    export enum StatementMethod {\n      \n        /**\n         * The Staff member.\n         */\n        Staff = 0,\n        \n        /**\n         * The PosTerminal member.\n         */\n        PosTerminal = 1,\n        \n        /**\n         * The Total member.\n         */\n        Total = 2,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * SalesRepPromptType enum type.\n     */\n    export enum SalesRepPromptType {\n      \n        /**\n         * The NoPrompt member.\n         */\n        NoPrompt = 0,\n        \n        /**\n         * The PromptOnCartCreation member.\n         */\n        PromptOnCartCreation = 1,\n        \n        /**\n         * The PromptOnCartLineCreation member.\n         */\n        PromptOnCartLineCreation = 2,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * RetailProductSearchType enum type.\n     */\n    export enum RetailProductSearchType {\n      \n        /**\n         * The MatchAnySearchTerms member.\n         */\n        MatchAnySearchTerms = 0,\n        \n        /**\n         * The MatchAllSearchTerms member.\n         */\n        MatchAllSearchTerms = 1\n    }\n    \n    /**\n     * RetailDenominationsToDisplay enum type.\n     */\n    export enum RetailDenominationsToDisplay {\n      \n        /**\n         * The GreaterOrEqualToAmountDue member.\n         */\n        GreaterOrEqualToAmountDue = 0,\n        \n        /**\n         * The AllDenominations member.\n         */\n        AllDenominations = 1\n    }\n    \n    /**\n     * EmployeeLogonType enum type.\n     */\n    export enum EmployeeLogonType {\n      \n        /**\n         * The RetailIdentityProvider member.\n         */\n        RetailIdentityProvider = 0,\n        \n        /**\n         * The AzureActiveDirectory member.\n         */\n        AzureActiveDirectory = 1,\n        \n        /**\n         * The AzureActiveDirectorySingleSignOn member.\n         */\n        AzureActiveDirectorySingleSignOn = 2\n    }\n    \n    /**\n     * RetailCustomerSearchMode enum type.\n     */\n    export enum RetailCustomerSearchMode {\n      \n        /**\n         * The Local member.\n         */\n        Local = 0,\n        \n        /**\n         * The Remote member.\n         */\n        Remote = 1\n    }\n    \n    /**\n     * RequirePaymentForFulfillment enum type.\n     */\n    export enum RequirePaymentForFulfillment {\n      \n        /**\n         * The AllowPayLater member.\n         */\n        AllowPayLater = 0,\n        \n        /**\n         * The CardRequired member.\n         */\n        CardRequired = 1\n    }\n    \n    /**\n     * CardNotPresentProcessingConfiguration enum type.\n     */\n    export enum CardNotPresentProcessingConfiguration {\n      \n        /**\n         * The UseHardwareStation member.\n         */\n        UseHardwareStation = 0,\n        \n        /**\n         * The UseCommerceEngine member.\n         */\n        UseCommerceEngine = 1\n    }\n    \n    /**\n     * ChangeDueBehavior enum type.\n     */\n    export enum ChangeDueBehavior {\n      \n        /**\n         * The ShowAlways member.\n         */\n        ShowAlways = 0,\n        \n        /**\n         * The SkipWhenZero member.\n         */\n        SkipWhenZero = 1\n    }\n    \n    /**\n     * FontSchemeType enum type.\n     */\n    export enum FontSchemeType {\n      \n        /**\n         * The Standard member.\n         */\n        Standard = 0,\n        \n        /**\n         * The Large member.\n         */\n        Large = 1,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * DefaultSearchResultDisplayViewType enum type.\n     */\n    export enum DefaultSearchResultDisplayViewType {\n      \n        /**\n         * The ListView member.\n         */\n        ListView = 0,\n        \n        /**\n         * The CardView member.\n         */\n        CardView = 1,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * DeviceActivationStatus enum type.\n     */\n    export enum DeviceActivationStatus {\n      \n        /**\n         * The Pending member.\n         */\n        Pending = 0,\n        \n        /**\n         * The Activated member.\n         */\n        Activated = 1,\n        \n        /**\n         * The Deactivated member.\n         */\n        Deactivated = 2,\n        \n        /**\n         * The Disabled member.\n         */\n        Disabled = 3,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * DeviceType enum type.\n     */\n    export enum DeviceType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The OPOS member.\n         */\n        OPOS = 1,\n        \n        /**\n         * The WindowsPrinter member.\n         */\n        WindowsPrinter = 2,\n        \n        /**\n         * The Network member.\n         */\n        Network = 3\n    }\n    \n    /**\n     * DualDisplayType enum type.\n     */\n    export enum DualDisplayType {\n      \n        /**\n         * The Logo member.\n         */\n        Logo = 0,\n        \n        /**\n         * The ImageRotator member.\n         */\n        ImageRotator = 1,\n        \n        /**\n         * The WebBrowser member.\n         */\n        WebBrowser = 2,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * FiscalRegisterType enum type.\n     */\n    export enum FiscalRegisterType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Manufacturer member.\n         */\n        Manufacturer = 1\n    }\n    \n    /**\n     * PrinterLogotype enum type.\n     */\n    export enum PrinterLogotype {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Download member.\n         */\n        Download = 1,\n        \n        /**\n         * The EpsonFlash member.\n         */\n        EpsonFlash = 2\n    }\n    \n    /**\n     * PrinterLogoAlignmentType enum type.\n     */\n    export enum PrinterLogoAlignmentType {\n      \n        /**\n         * The Left member.\n         */\n        Left = 0,\n        \n        /**\n         * The Center member.\n         */\n        Center = 1,\n        \n        /**\n         * The Right member.\n         */\n        Right = 2,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * FiscalIntegrationConnectorType enum type.\n     */\n    export enum FiscalIntegrationConnectorType {\n      \n        /**\n         * The Local member.\n         */\n        Local = 0,\n        \n        /**\n         * The External member.\n         */\n        External = 1,\n        \n        /**\n         * The Internal member.\n         */\n        Internal = 2\n    }\n    \n    /**\n     * FiscalIntegrationConnectorLocation enum type.\n     */\n    export enum FiscalIntegrationConnectorLocation {\n      \n        /**\n         * The HardwareStation member.\n         */\n        HardwareStation = 0,\n        \n        /**\n         * The Pos member.\n         */\n        Pos = 1\n    }\n    \n    /**\n     * ReceiptType enum type.\n     */\n    export enum ReceiptType {\n      \n        /**\n         * The Unknown member.\n         */\n        Unknown = 0,\n        \n        /**\n         * The SalesReceipt member.\n         */\n        SalesReceipt = 1,\n        \n        /**\n         * The CardReceiptForShop member.\n         */\n        CardReceiptForShop = 2,\n        \n        /**\n         * The CardReceiptForCustomer member.\n         */\n        CardReceiptForCustomer = 3,\n        \n        /**\n         * The CardReceiptForShopReturn member.\n         */\n        CardReceiptForShopReturn = 4,\n        \n        /**\n         * The CardReceiptForCustomerReturn member.\n         */\n        CardReceiptForCustomerReturn = 5,\n        \n        /**\n         * The CustomerAccountReceiptForShop member.\n         */\n        CustomerAccountReceiptForShop = 7,\n        \n        /**\n         * The CustomerAccountReceiptForCustomer member.\n         */\n        CustomerAccountReceiptForCustomer = 8,\n        \n        /**\n         * The CustomerAccountReceiptForShopReturn member.\n         */\n        CustomerAccountReceiptForShopReturn = 9,\n        \n        /**\n         * The CustomerAccountReceiptForCustomerReturn member.\n         */\n        CustomerAccountReceiptForCustomerReturn = 10,\n        \n        /**\n         * The CustomerAccountDeposit member.\n         */\n        CustomerAccountDeposit = 14,\n        \n        /**\n         * The CreditMemo member.\n         */\n        CreditMemo = 15,\n        \n        /**\n         * The SalesOrderReceipt member.\n         */\n        SalesOrderReceipt = 18,\n        \n        /**\n         * The GiftCertificate member.\n         */\n        GiftCertificate = 20,\n        \n        /**\n         * The QuotationReceipt member.\n         */\n        QuotationReceipt = 21,\n        \n        /**\n         * The PackingSlip member.\n         */\n        PackingSlip = 22,\n        \n        /**\n         * The PickupReceipt member.\n         */\n        PickupReceipt = 23,\n        \n        /**\n         * The XReport member.\n         */\n        XReport = 24,\n        \n        /**\n         * The ZReport member.\n         */\n        ZReport = 25,\n        \n        /**\n         * The SafeDrop member.\n         */\n        SafeDrop = 26,\n        \n        /**\n         * The BankDrop member.\n         */\n        BankDrop = 27,\n        \n        /**\n         * The TenderDeclaration member.\n         */\n        TenderDeclaration = 28,\n        \n        /**\n         * The RemoveTender member.\n         */\n        RemoveTender = 29,\n        \n        /**\n         * The FloatEntry member.\n         */\n        FloatEntry = 30,\n        \n        /**\n         * The StartingAmount member.\n         */\n        StartingAmount = 31,\n        \n        /**\n         * The OrderSummaryReceipt member.\n         */\n        OrderSummaryReceipt = 32,\n        \n        /**\n         * The GiftReceipt member.\n         */\n        GiftReceipt = 33,\n        \n        /**\n         * The ReturnLabel member.\n         */\n        ReturnLabel = 34,\n        \n        /**\n         * The EFDocDANFESimplified member.\n         */\n        EFDocDANFESimplified = 35,\n        \n        /**\n         * The EFDocDANFEDetailed member.\n         */\n        EFDocDANFEDetailed = 36,\n        \n        /**\n         * The PickingList member.\n         */\n        PickingList = 37,\n        \n        /**\n         * The OpenDrawer member.\n         */\n        OpenDrawer = 38,\n        \n        /**\n         * The SuspendedTransaction member.\n         */\n        SuspendedTransaction = 39,\n        \n        /**\n         * The GiftCardInquiry member.\n         */\n        GiftCardInquiry = 40,\n        \n        /**\n         * The CardTerminationReceiptForShop member.\n         */\n        CardTerminationReceiptForShop = 41,\n        \n        /**\n         * The CardTerminationReceiptForCustomer member.\n         */\n        CardTerminationReceiptForCustomer = 42,\n        \n        /**\n         * The TransferPackingSlip member.\n         */\n        TransferPackingSlip = 43,\n        \n        /**\n         * The EFDocDanfeModel55 member.\n         */\n        EFDocDanfeModel55 = 44,\n        \n        /**\n         * The InventoryAdjustment member.\n         */\n        InventoryAdjustment = 45,\n        \n        /**\n         * The InventoryTransfer member.\n         */\n        InventoryTransfer = 46,\n        \n        /**\n         * The CfeDetailed member.\n         */\n        CfeDetailed = 47,\n        \n        /**\n         * The CfeSimplified member.\n         */\n        CfeSimplified = 48,\n        \n        /**\n         * The CfeCancelled member.\n         */\n        CfeCancelled = 49,\n        \n        /**\n         * The CustomReceipt1 member.\n         */\n        CustomReceipt1 = 101,\n        \n        /**\n         * The CustomReceipt2 member.\n         */\n        CustomReceipt2 = 102,\n        \n        /**\n         * The CustomReceipt3 member.\n         */\n        CustomReceipt3 = 103,\n        \n        /**\n         * The CustomReceipt4 member.\n         */\n        CustomReceipt4 = 104,\n        \n        /**\n         * The CustomReceipt5 member.\n         */\n        CustomReceipt5 = 105,\n        \n        /**\n         * The CustomReceipt6 member.\n         */\n        CustomReceipt6 = 106,\n        \n        /**\n         * The CustomReceipt7 member.\n         */\n        CustomReceipt7 = 107,\n        \n        /**\n         * The CustomReceipt8 member.\n         */\n        CustomReceipt8 = 108,\n        \n        /**\n         * The CustomReceipt9 member.\n         */\n        CustomReceipt9 = 109,\n        \n        /**\n         * The CustomReceipt10 member.\n         */\n        CustomReceipt10 = 110,\n        \n        /**\n         * The CustomReceipt11 member.\n         */\n        CustomReceipt11 = 111,\n        \n        /**\n         * The CustomReceipt12 member.\n         */\n        CustomReceipt12 = 112,\n        \n        /**\n         * The CustomReceipt13 member.\n         */\n        CustomReceipt13 = 113,\n        \n        /**\n         * The CustomReceipt14 member.\n         */\n        CustomReceipt14 = 114,\n        \n        /**\n         * The CustomReceipt15 member.\n         */\n        CustomReceipt15 = 115,\n        \n        /**\n         * The CustomReceipt16 member.\n         */\n        CustomReceipt16 = 116,\n        \n        /**\n         * The CustomReceipt17 member.\n         */\n        CustomReceipt17 = 117,\n        \n        /**\n         * The CustomReceipt18 member.\n         */\n        CustomReceipt18 = 118,\n        \n        /**\n         * The CustomReceipt19 member.\n         */\n        CustomReceipt19 = 119,\n        \n        /**\n         * The CustomReceipt20 member.\n         */\n        CustomReceipt20 = 120\n    }\n    \n    /**\n     * PrintBehavior enum type.\n     */\n    export enum PrintBehavior {\n      \n        /**\n         * The Always member.\n         */\n        Always = 0,\n        \n        /**\n         * The Never member.\n         */\n        Never = 1,\n        \n        /**\n         * The Prompt member.\n         */\n        Prompt = 2,\n        \n        /**\n         * The AsRequired member.\n         */\n        AsRequired = 3\n    }\n    \n    /**\n     * DistanceUnit enum type.\n     */\n    export enum DistanceUnit {\n      \n        /**\n         * The Miles member.\n         */\n        Miles = 0,\n        \n        /**\n         * The Kilometers member.\n         */\n        Kilometers = 1\n    }\n    \n    /**\n     * StockCountStatus enum type.\n     */\n    export enum StockCountStatus {\n      \n        /**\n         * The Unchanged member.\n         */\n        Unchanged = 0,\n        \n        /**\n         * The PendingUpdate member.\n         */\n        PendingUpdate = 1\n    }\n    \n    /**\n     * UnitOfMeasureSource enum type.\n     */\n    export enum UnitOfMeasureSource {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Default member.\n         */\n        Default = 1,\n        \n        /**\n         * The StandardConversion member.\n         */\n        StandardConversion = 2,\n        \n        /**\n         * The IntraOrInterClassConversion member.\n         */\n        IntraOrInterClassConversion = 3,\n        \n        /**\n         * The VariantConversion member.\n         */\n        VariantConversion = 4\n    }\n    \n    /**\n     * RecommendedElementType enum type.\n     */\n    export enum RecommendedElementType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Product member.\n         */\n        Product = 1,\n        \n        /**\n         * The Content member.\n         */\n        Content = 2\n    }\n    \n    /**\n     * CommerceListInvitationStatus enum type.\n     */\n    export enum CommerceListInvitationStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Pending member.\n         */\n        Pending = 1,\n        \n        /**\n         * The Accepted member.\n         */\n        Accepted = 2\n    }\n    \n    /**\n     * CommerceListInvitationType enum type.\n     */\n    export enum CommerceListInvitationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Public member.\n         */\n        Public = 1,\n        \n        /**\n         * The Email member.\n         */\n        Email = 2\n    }\n    \n    /**\n     * SearchLocation enum type.\n     */\n    export enum SearchLocation {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Local member.\n         */\n        Local = 1,\n        \n        /**\n         * The Remote member.\n         */\n        Remote = 2,\n        \n        /**\n         * The All member.\n         */\n        All = 3\n    }\n    \n    /**\n     * OrderSearchType enum type.\n     */\n    export enum OrderSearchType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The SalesOrder member.\n         */\n        SalesOrder = 1,\n        \n        /**\n         * The SalesTransaction member.\n         */\n        SalesTransaction = 2,\n        \n        /**\n         * The ConsolidateOrder member.\n         */\n        ConsolidateOrder = 3\n    }\n    \n    /**\n     * SalesTransactionType enum type.\n     */\n    export enum SalesTransactionType {\n      \n        /**\n         * The Sales member.\n         */\n        Sales = 2,\n        \n        /**\n         * The CustomerAccountDeposit member.\n         */\n        CustomerAccountDeposit = 3,\n        \n        /**\n         * The SalesInvoice member.\n         */\n        SalesInvoice = 15,\n        \n        /**\n         * The IncomeExpense member.\n         */\n        IncomeExpense = 18,\n        \n        /**\n         * The CustomerOrder member.\n         */\n        CustomerOrder = 19,\n        \n        /**\n         * The PendingSalesOrder member.\n         */\n        PendingSalesOrder = 27,\n        \n        /**\n         * The AsyncCustomerQuote member.\n         */\n        AsyncCustomerQuote = 31,\n        \n        /**\n         * The AsyncCustomerOrder member.\n         */\n        AsyncCustomerOrder = 33,\n        \n        /**\n         * The SuspendedTransaction member.\n         */\n        SuspendedTransaction = 36,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * CustomerRefinerSource enum type.\n     */\n    export enum CustomerRefinerSource {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Attribute member.\n         */\n        Attribute = 1,\n        \n        /**\n         * The CustomerSearchField member.\n         */\n        CustomerSearchField = 2\n    }\n    \n    /**\n     * PriceSourceType enum type.\n     */\n    export enum PriceSourceType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The BasePrice member.\n         */\n        BasePrice = 1,\n        \n        /**\n         * The TradeAgreement member.\n         */\n        TradeAgreement = 2,\n        \n        /**\n         * The PriceAdjustment member.\n         */\n        PriceAdjustment = 3,\n        \n        /**\n         * The SalesAgreement member.\n         */\n        SalesAgreement = 4,\n        \n        /**\n         * The Manual member.\n         */\n        Manual = 5\n    }\n    \n    /**\n     * RetailAffiliationType enum type.\n     */\n    export enum RetailAffiliationType {\n      \n        /**\n         * The General member.\n         */\n        General = 0,\n        \n        /**\n         * The Loyalty member.\n         */\n        Loyalty = 1,\n        \n        /**\n         * The Unknown member.\n         */\n        Unknown = -1\n    }\n    \n    /**\n     * InventoryDocumentLineOriginType enum type.\n     */\n    export enum InventoryDocumentLineOriginType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Headquarters member.\n         */\n        Headquarters = 1,\n        \n        /**\n         * The Channel member.\n         */\n        Channel = 2\n    }\n    \n    /**\n     * InventorySerialNumberLineStatus enum type.\n     */\n    export enum InventorySerialNumberLineStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The NotRegistered member.\n         */\n        NotRegistered = 1,\n        \n        /**\n         * The Registering member.\n         */\n        Registering = 2,\n        \n        /**\n         * The Registered member.\n         */\n        Registered = 3\n    }\n    \n    /**\n     * InventoryTrackingDimensionLineStatus enum type.\n     */\n    export enum InventoryTrackingDimensionLineStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The NotRegistered member.\n         */\n        NotRegistered = 1,\n        \n        /**\n         * The Registering member.\n         */\n        Registering = 2,\n        \n        /**\n         * The Registered member.\n         */\n        Registered = 3\n    }\n    \n    /**\n     * InventorySourceDocumentLineStatus enum type.\n     */\n    export enum InventorySourceDocumentLineStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Deleted member.\n         */\n        Deleted = 1,\n        \n        /**\n         * The ReadOnly member.\n         */\n        ReadOnly = 2\n    }\n    \n    /**\n     * RetailOperation enum type.\n     */\n    export enum RetailOperation {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The ItemSale member.\n         */\n        ItemSale = 100,\n        \n        /**\n         * The PriceCheck member.\n         */\n        PriceCheck = 101,\n        \n        /**\n         * The VoidItem member.\n         */\n        VoidItem = 102,\n        \n        /**\n         * The ItemComment member.\n         */\n        ItemComment = 103,\n        \n        /**\n         * The PriceOverride member.\n         */\n        PriceOverride = 104,\n        \n        /**\n         * The SetQuantity member.\n         */\n        SetQuantity = 105,\n        \n        /**\n         * The ClearQuantity member.\n         */\n        ClearQuantity = 106,\n        \n        /**\n         * The ItemSearch member.\n         */\n        ItemSearch = 108,\n        \n        /**\n         * The ReturnItem member.\n         */\n        ReturnItem = 109,\n        \n        /**\n         * The WeighItem member.\n         */\n        WeighItem = 110,\n        \n        /**\n         * The LinkedItemsAdd member.\n         */\n        LinkedItemsAdd = 112,\n        \n        /**\n         * The SetDimensions member.\n         */\n        SetDimensions = 113,\n        \n        /**\n         * The ReturnTransaction member.\n         */\n        ReturnTransaction = 114,\n        \n        /**\n         * The ShowJournal member.\n         */\n        ShowJournal = 115,\n        \n        /**\n         * The SetCostPrice member.\n         */\n        SetCostPrice = 116,\n        \n        /**\n         * The LoyaltyRequest member.\n         */\n        LoyaltyRequest = 117,\n        \n        /**\n         * The ProcessInput member.\n         */\n        ProcessInput = 118,\n        \n        /**\n         * The SalespersonBarcode member.\n         */\n        SalespersonBarcode = 119,\n        \n        /**\n         * The SalespersonCard member.\n         */\n        SalespersonCard = 120,\n        \n        /**\n         * The SalespersonClear member.\n         */\n        SalespersonClear = 121,\n        \n        /**\n         * The InvoiceComment member.\n         */\n        InvoiceComment = 122,\n        \n        /**\n         * The ChangeUnitOfMeasure member.\n         */\n        ChangeUnitOfMeasure = 123,\n        \n        /**\n         * The ItemSaleMultiple member.\n         */\n        ItemSaleMultiple = 124,\n        \n        /**\n         * The RFIDSale member.\n         */\n        RFIDSale = 125,\n        \n        /**\n         * The SalesHistory member.\n         */\n        SalesHistory = 126,\n        \n        /**\n         * The OverrideTaxTransaction member.\n         */\n        OverrideTaxTransaction = 127,\n        \n        /**\n         * The OverrideTaxTransactionList member.\n         */\n        OverrideTaxTransactionList = 128,\n        \n        /**\n         * The OverrideTaxLine member.\n         */\n        OverrideTaxLine = 129,\n        \n        /**\n         * The OverrideTaxLineList member.\n         */\n        OverrideTaxLineList = 130,\n        \n        /**\n         * The PackSlip member.\n         */\n        PackSlip = 131,\n        \n        /**\n         * The DepositOverride member.\n         */\n        DepositOverride = 132,\n        \n        /**\n         * The BuyWarranty member.\n         */\n        BuyWarranty = 133,\n        \n        /**\n         * The AddAffiliation member.\n         */\n        AddAffiliation = 134,\n        \n        /**\n         * The AddAffiliationFromList member.\n         */\n        AddAffiliationFromList = 135,\n        \n        /**\n         * The AddSerialNumber member.\n         */\n        AddSerialNumber = 136,\n        \n        /**\n         * The AddAffiliationToCustomer member.\n         */\n        AddAffiliationToCustomer = 137,\n        \n        /**\n         * The RemoveAffiliationFromCustomer member.\n         */\n        RemoveAffiliationFromCustomer = 138,\n        \n        /**\n         * The ConcludeTransaction member.\n         */\n        ConcludeTransaction = 139,\n        \n        /**\n         * The AddLineCharge member.\n         */\n        AddLineCharge = 140,\n        \n        /**\n         * The AddHeaderCharge member.\n         */\n        AddHeaderCharge = 141,\n        \n        /**\n         * The ManageCharges member.\n         */\n        ManageCharges = 142,\n        \n        /**\n         * The RecalculateCharges member.\n         */\n        RecalculateCharges = 143,\n        \n        /**\n         * The AddWarrantyToAnExistingTransaction member.\n         */\n        AddWarrantyToAnExistingTransaction = 144,\n        \n        /**\n         * The PayCash member.\n         */\n        PayCash = 200,\n        \n        /**\n         * The PayCard member.\n         */\n        PayCard = 201,\n        \n        /**\n         * The PayCustomerAccount member.\n         */\n        PayCustomerAccount = 202,\n        \n        /**\n         * The PayCurrency member.\n         */\n        PayCurrency = 203,\n        \n        /**\n         * The PayCheck member.\n         */\n        PayCheck = 204,\n        \n        /**\n         * The PayCashQuick member.\n         */\n        PayCashQuick = 206,\n        \n        /**\n         * The PayLoyalty member.\n         */\n        PayLoyalty = 207,\n        \n        /**\n         * The PayCorporateCard member.\n         */\n        PayCorporateCard = 208,\n        \n        /**\n         * The ChangeBack member.\n         */\n        ChangeBack = 210,\n        \n        /**\n         * The VoidPayment member.\n         */\n        VoidPayment = 211,\n        \n        /**\n         * The FleetCardInfo member.\n         */\n        FleetCardInfo = 212,\n        \n        /**\n         * The PayCreditMemo member.\n         */\n        PayCreditMemo = 213,\n        \n        /**\n         * The PayGiftCertificate member.\n         */\n        PayGiftCertificate = 214,\n        \n        /**\n         * The CashOutGiftCard member.\n         */\n        CashOutGiftCard = 215,\n        \n        /**\n         * The PayCardExact member.\n         */\n        PayCardExact = 216,\n        \n        /**\n         * The PayCheckExact member.\n         */\n        PayCheckExact = 217,\n        \n        /**\n         * The PayCustomerAccountExact member.\n         */\n        PayCustomerAccountExact = 218,\n        \n        /**\n         * The PayGiftCardExact member.\n         */\n        PayGiftCardExact = 219,\n        \n        /**\n         * The PayLoyaltyCardExact member.\n         */\n        PayLoyaltyCardExact = 220,\n        \n        /**\n         * The LineDiscountAmount member.\n         */\n        LineDiscountAmount = 300,\n        \n        /**\n         * The LineDiscountPercent member.\n         */\n        LineDiscountPercent = 301,\n        \n        /**\n         * The TotalDiscountAmount member.\n         */\n        TotalDiscountAmount = 302,\n        \n        /**\n         * The TotalDiscountPercent member.\n         */\n        TotalDiscountPercent = 303,\n        \n        /**\n         * The DiscountCodeBarcode member.\n         */\n        DiscountCodeBarcode = 304,\n        \n        /**\n         * The CalculateFullDiscounts member.\n         */\n        CalculateFullDiscounts = 310,\n        \n        /**\n         * The RemovePeriodicDiscountsFromTransaction member.\n         */\n        RemovePeriodicDiscountsFromTransaction = 311,\n        \n        /**\n         * The RecalculatePeriodicDiscounts member.\n         */\n        RecalculatePeriodicDiscounts = 312,\n        \n        /**\n         * The PopupMenu member.\n         */\n        PopupMenu = 400,\n        \n        /**\n         * The Submenu member.\n         */\n        Submenu = 401,\n        \n        /**\n         * The VoidTransaction member.\n         */\n        VoidTransaction = 500,\n        \n        /**\n         * The TransactionComment member.\n         */\n        TransactionComment = 501,\n        \n        /**\n         * The SalesPerson member.\n         */\n        SalesPerson = 502,\n        \n        /**\n         * The SuspendTransaction member.\n         */\n        SuspendTransaction = 503,\n        \n        /**\n         * The RecallTransaction member.\n         */\n        RecallTransaction = 504,\n        \n        /**\n         * The RecallUnconcludedTransaction member.\n         */\n        RecallUnconcludedTransaction = 505,\n        \n        /**\n         * The CardSwipe member.\n         */\n        CardSwipe = 506,\n        \n        /**\n         * The PharmacyPrescriptionAdd member.\n         */\n        PharmacyPrescriptionAdd = 507,\n        \n        /**\n         * The PharmacyPrescriptionCancel member.\n         */\n        PharmacyPrescriptionCancel = 508,\n        \n        /**\n         * The PharmacyPrescriptionPaid member.\n         */\n        PharmacyPrescriptionPaid = 509,\n        \n        /**\n         * The PharmacyPrescriptions member.\n         */\n        PharmacyPrescriptions = 510,\n        \n        /**\n         * The IssueCreditMemo member.\n         */\n        IssueCreditMemo = 511,\n        \n        /**\n         * The IssueGiftCertificate member.\n         */\n        IssueGiftCertificate = 512,\n        \n        /**\n         * The DisplayTotal member.\n         */\n        DisplayTotal = 513,\n        \n        /**\n         * The RecallSalesOrder member.\n         */\n        RecallSalesOrder = 515,\n        \n        /**\n         * The SalesInvoice member.\n         */\n        SalesInvoice = 516,\n        \n        /**\n         * The IncomeAccounts member.\n         */\n        IncomeAccounts = 517,\n        \n        /**\n         * The ExpenseAccounts member.\n         */\n        ExpenseAccounts = 518,\n        \n        /**\n         * The AddToGiftCard member.\n         */\n        AddToGiftCard = 519,\n        \n        /**\n         * The GiftCardBalance member.\n         */\n        GiftCardBalance = 520,\n        \n        /**\n         * The LoyaltyCardPointsBalance member.\n         */\n        LoyaltyCardPointsBalance = 521,\n        \n        /**\n         * The ForceCompleteTransaction member.\n         */\n        ForceCompleteTransaction = 522,\n        \n        /**\n         * The CashChangerRegisterAmount member.\n         */\n        CashChangerRegisterAmount = 550,\n        \n        /**\n         * The CashChangerReset member.\n         */\n        CashChangerReset = 551,\n        \n        /**\n         * The CashChangerRegret member.\n         */\n        CashChangerRegret = 552,\n        \n        /**\n         * The CashChangerExit member.\n         */\n        CashChangerExit = 553,\n        \n        /**\n         * The CashChangerChange member.\n         */\n        CashChangerChange = 554,\n        \n        /**\n         * The CashChangerLogOn member.\n         */\n        CashChangerLogOn = 555,\n        \n        /**\n         * The CashChangerInit member.\n         */\n        CashChangerInit = 556,\n        \n        /**\n         * The SetCustomer member.\n         */\n        SetCustomer = 600,\n        \n        /**\n         * The CustomerSearch member.\n         */\n        CustomerSearch = 602,\n        \n        /**\n         * The CustomerClear member.\n         */\n        CustomerClear = 603,\n        \n        /**\n         * The CustomerCard member.\n         */\n        CustomerCard = 604,\n        \n        /**\n         * The CustomerTransactions member.\n         */\n        CustomerTransactions = 609,\n        \n        /**\n         * The CustomerTransactionsReport member.\n         */\n        CustomerTransactionsReport = 610,\n        \n        /**\n         * The CustomerBalanceReport member.\n         */\n        CustomerBalanceReport = 611,\n        \n        /**\n         * The CustomerAdd member.\n         */\n        CustomerAdd = 612,\n        \n        /**\n         * The CustomerBarcode member.\n         */\n        CustomerBarcode = 613,\n        \n        /**\n         * The EditCustomerOrder member.\n         */\n        EditCustomerOrder = 614,\n        \n        /**\n         * The EditQuotation member.\n         */\n        EditQuotation = 615,\n        \n        /**\n         * The CreateCustomerOrder member.\n         */\n        CreateCustomerOrder = 620,\n        \n        /**\n         * The CreateQuotation member.\n         */\n        CreateQuotation = 621,\n        \n        /**\n         * The Search member.\n         */\n        Search = 622,\n        \n        /**\n         * The CustomerEdit member.\n         */\n        CustomerEdit = 623,\n        \n        /**\n         * The LoyaltyIssueCard member.\n         */\n        LoyaltyIssueCard = 625,\n        \n        /**\n         * The RecalculateCustomerOrder member.\n         */\n        RecalculateCustomerOrder = 627,\n        \n        /**\n         * The ShipSelectedProducts member.\n         */\n        ShipSelectedProducts = 629,\n        \n        /**\n         * The ShipAllProducts member.\n         */\n        ShipAllProducts = 630,\n        \n        /**\n         * The PickupSelectedProducts member.\n         */\n        PickupSelectedProducts = 631,\n        \n        /**\n         * The PickupAllProducts member.\n         */\n        PickupAllProducts = 632,\n        \n        /**\n         * The SetQuotationExpirationDate member.\n         */\n        SetQuotationExpirationDate = 633,\n        \n        /**\n         * The PaymentsHistory member.\n         */\n        PaymentsHistory = 634,\n        \n        /**\n         * The ReturnChargesOverride member.\n         */\n        ReturnChargesOverride = 635,\n        \n        /**\n         * The CreateRetailTransaction member.\n         */\n        CreateRetailTransaction = 636,\n        \n        /**\n         * The SetCommissionSalesGroupOnTransaction member.\n         */\n        SetCommissionSalesGroupOnTransaction = 637,\n        \n        /**\n         * The SetCommissionSalesGroupOnLine member.\n         */\n        SetCommissionSalesGroupOnLine = 638,\n        \n        /**\n         * The ClearCommissionSalesGroupOnTransaction member.\n         */\n        ClearCommissionSalesGroupOnTransaction = 639,\n        \n        /**\n         * The ClearCommissionSalesGroupOnLine member.\n         */\n        ClearCommissionSalesGroupOnLine = 640,\n        \n        /**\n         * The CarryoutSelectedProducts member.\n         */\n        CarryoutSelectedProducts = 641,\n        \n        /**\n         * The CarryoutAllProducts member.\n         */\n        CarryoutAllProducts = 642,\n        \n        /**\n         * The AddCoupons member.\n         */\n        AddCoupons = 643,\n        \n        /**\n         * The RemoveCoupons member.\n         */\n        RemoveCoupons = 644,\n        \n        /**\n         * The ViewAllDiscounts member.\n         */\n        ViewAllDiscounts = 645,\n        \n        /**\n         * The ViewAvailableDiscounts member.\n         */\n        ViewAvailableDiscounts = 646,\n        \n        /**\n         * The ChangeDeliveryMode member.\n         */\n        ChangeDeliveryMode = 647,\n        \n        /**\n         * The CancelOrder member.\n         */\n        CancelOrder = 648,\n        \n        /**\n         * The CreatePickingList member.\n         */\n        CreatePickingList = 649,\n        \n        /**\n         * The PrintPackingSlip member.\n         */\n        PrintPackingSlip = 650,\n        \n        /**\n         * The EditFulfillmentLine member.\n         */\n        EditFulfillmentLine = 651,\n        \n        /**\n         * The AcceptFulfillmentLine member.\n         */\n        AcceptFulfillmentLine = 652,\n        \n        /**\n         * The RejectFulfillmentLine member.\n         */\n        RejectFulfillmentLine = 653,\n        \n        /**\n         * The PickFulfillmentLine member.\n         */\n        PickFulfillmentLine = 654,\n        \n        /**\n         * The PackFulfillmentLine member.\n         */\n        PackFulfillmentLine = 655,\n        \n        /**\n         * The ShipFulfillmentLine member.\n         */\n        ShipFulfillmentLine = 656,\n        \n        /**\n         * The PickupFulfillmentLine member.\n         */\n        PickupFulfillmentLine = 657,\n        \n        /**\n         * The ChangePickupLines member.\n         */\n        ChangePickupLines = 658,\n        \n        /**\n         * The LogOn member.\n         */\n        LogOn = 700,\n        \n        /**\n         * The LogOff member.\n         */\n        LogOff = 701,\n        \n        /**\n         * The ChangeUser member.\n         */\n        ChangeUser = 702,\n        \n        /**\n         * The LockTerminal member.\n         */\n        LockTerminal = 703,\n        \n        /**\n         * The LogOffForce member.\n         */\n        LogOffForce = 704,\n        \n        /**\n         * The EmployeeCard member.\n         */\n        EmployeeCard = 705,\n        \n        /**\n         * The EmployeeBarcode member.\n         */\n        EmployeeBarcode = 706,\n        \n        /**\n         * The ActivateDevice member.\n         */\n        ActivateDevice = 707,\n        \n        /**\n         * The DeactivateDevice member.\n         */\n        DeactivateDevice = 708,\n        \n        /**\n         * The ChangeHardwareStation member.\n         */\n        ChangeHardwareStation = 709,\n        \n        /**\n         * The PairHardwareStation member.\n         */\n        PairHardwareStation = 710,\n        \n        /**\n         * The MassActivateDevice member.\n         */\n        MassActivateDevice = 711,\n        \n        /**\n         * The ViewMyClientBook member.\n         */\n        ViewMyClientBook = 712,\n        \n        /**\n         * The ViewStoreClientBooks member.\n         */\n        ViewStoreClientBooks = 713,\n        \n        /**\n         * The AddCustomerToClientBook member.\n         */\n        AddCustomerToClientBook = 714,\n        \n        /**\n         * The RemoveCustomersFromClientBook member.\n         */\n        RemoveCustomersFromClientBook = 715,\n        \n        /**\n         * The ReassignClientBookCustomers member.\n         */\n        ReassignClientBookCustomers = 716,\n        \n        /**\n         * The HealthCheck member.\n         */\n        HealthCheck = 717,\n        \n        /**\n         * The RequestForAssistance member.\n         */\n        RequestForAssistance = 718,\n        \n        /**\n         * The NegativeAdjustment member.\n         */\n        NegativeAdjustment = 800,\n        \n        /**\n         * The InventoryLookup member.\n         */\n        InventoryLookup = 801,\n        \n        /**\n         * The StockCount member.\n         */\n        StockCount = 802,\n        \n        /**\n         * The PickingAndReceiving member.\n         */\n        PickingAndReceiving = 803,\n        \n        /**\n         * The InboundInventory member.\n         */\n        InboundInventory = 804,\n        \n        /**\n         * The OutboundInventory member.\n         */\n        OutboundInventory = 805,\n        \n        /**\n         * The InventoryAdjustment member.\n         */\n        InventoryAdjustment = 806,\n        \n        /**\n         * The InventoryMovement member.\n         */\n        InventoryMovement = 807,\n        \n        /**\n         * The PostStockCounting member.\n         */\n        PostStockCounting = 808,\n        \n        /**\n         * The CreatePurchaseOrder member.\n         */\n        CreatePurchaseOrder = 809,\n        \n        /**\n         * The ConfirmPurchaseOrder member.\n         */\n        ConfirmPurchaseOrder = 810,\n        \n        /**\n         * The CreateTransferOrder member.\n         */\n        CreateTransferOrder = 811,\n        \n        /**\n         * The ApplicationExit member.\n         */\n        ApplicationExit = 900,\n        \n        /**\n         * The PrintTaxFree member.\n         */\n        PrintTaxFree = 906,\n        \n        /**\n         * The PrintPreviousSlip member.\n         */\n        PrintPreviousSlip = 907,\n        \n        /**\n         * The PrintPreviousInvoice member.\n         */\n        PrintPreviousInvoice = 908,\n        \n        /**\n         * The UploadPrinterLogo member.\n         */\n        UploadPrinterLogo = 909,\n        \n        /**\n         * The RestartComputer member.\n         */\n        RestartComputer = 910,\n        \n        /**\n         * The ShutdownComputer member.\n         */\n        ShutdownComputer = 911,\n        \n        /**\n         * The DesignModeEnable member.\n         */\n        DesignModeEnable = 912,\n        \n        /**\n         * The DesignModeDisable member.\n         */\n        DesignModeDisable = 913,\n        \n        /**\n         * The MinimizePOSWindow member.\n         */\n        MinimizePOSWindow = 914,\n        \n        /**\n         * The BlankOperation member.\n         */\n        BlankOperation = 915,\n        \n        /**\n         * The WindowsWorkflowOperation member.\n         */\n        WindowsWorkflowOperation = 916,\n        \n        /**\n         * The DatabaseConnectionStatus member.\n         */\n        DatabaseConnectionStatus = 917,\n        \n        /**\n         * The ShowBlindClosedShifts member.\n         */\n        ShowBlindClosedShifts = 918,\n        \n        /**\n         * The ExtendedLogOn member.\n         */\n        ExtendedLogOn = 919,\n        \n        /**\n         * The TimeRegistration member.\n         */\n        TimeRegistration = 920,\n        \n        /**\n         * The ViewTimeClockEntries member.\n         */\n        ViewTimeClockEntries = 921,\n        \n        /**\n         * The ViewProductDetails member.\n         */\n        ViewProductDetails = 922,\n        \n        /**\n         * The ViewOrderFulfillmentLines member.\n         */\n        ViewOrderFulfillmentLines = 928,\n        \n        /**\n         * The OpenDrawer member.\n         */\n        OpenDrawer = 1000,\n        \n        /**\n         * The ViewReport member.\n         */\n        ViewReport = 1003,\n        \n        /**\n         * The TenderDeclaration member.\n         */\n        TenderDeclaration = 1052,\n        \n        /**\n         * The BlindCloseShift member.\n         */\n        BlindCloseShift = 1053,\n        \n        /**\n         * The SuspendShift member.\n         */\n        SuspendShift = 1054,\n        \n        /**\n         * The CloseShift member.\n         */\n        CloseShift = 1055,\n        \n        /**\n         * The PrintX member.\n         */\n        PrintX = 1056,\n        \n        /**\n         * The PrintZ member.\n         */\n        PrintZ = 1057,\n        \n        /**\n         * The PrintFiscalX member.\n         */\n        PrintFiscalX = 1058,\n        \n        /**\n         * The PrintFiscalZ member.\n         */\n        PrintFiscalZ = 1059,\n        \n        /**\n         * The CustomerAccountDeposit member.\n         */\n        CustomerAccountDeposit = 1100,\n        \n        /**\n         * The DeclareStartAmount member.\n         */\n        DeclareStartAmount = 1200,\n        \n        /**\n         * The FloatEntry member.\n         */\n        FloatEntry = 1201,\n        \n        /**\n         * The TenderRemoval member.\n         */\n        TenderRemoval = 1210,\n        \n        /**\n         * The SafeDrop member.\n         */\n        SafeDrop = 1211,\n        \n        /**\n         * The BankDrop member.\n         */\n        BankDrop = 1212,\n        \n        /**\n         * The ShippingAddressSearch member.\n         */\n        ShippingAddressSearch = 1213,\n        \n        /**\n         * The ShippingAddressAdd member.\n         */\n        ShippingAddressAdd = 1214,\n        \n        /**\n         * The ChangePassword member.\n         */\n        ChangePassword = 1215,\n        \n        /**\n         * The ResetPassword member.\n         */\n        ResetPassword = 1216,\n        \n        /**\n         * The KitDisassembly member.\n         */\n        KitDisassembly = 1217,\n        \n        /**\n         * The ForceUnlockPeripheral member.\n         */\n        ForceUnlockPeripheral = 1218,\n        \n        /**\n         * The OpenURL member.\n         */\n        OpenURL = 1219,\n        \n        /**\n         * The ManageSafe member.\n         */\n        ManageSafe = 1220,\n        \n        /**\n         * The VoidSuspendedTransactions member.\n         */\n        VoidSuspendedTransactions = 1221,\n        \n        /**\n         * The SkipFiscalRegistration member.\n         */\n        SkipFiscalRegistration = 1300,\n        \n        /**\n         * The MarkFiscalEventRegistered member.\n         */\n        MarkFiscalEventRegistered = 1301,\n        \n        /**\n         * The CompleteFiscalRegistrationProcess member.\n         */\n        CompleteFiscalRegistrationProcess = 1302,\n        \n        /**\n         * The SkipHealthCheckError member.\n         */\n        SkipHealthCheckError = 1303,\n        \n        /**\n         * The PostponeFiscalRegistration member.\n         */\n        PostponeFiscalRegistration = 1304,\n        \n        /**\n         * The ManageChecklistsAndTasks member.\n         */\n        ManageChecklistsAndTasks = 1400,\n        \n        /**\n         * The Invalid member.\n         */\n        Invalid = 65535\n    }\n    \n    /**\n     * RefinerType enum type.\n     */\n    export enum RefinerType {\n      \n        /**\n         * The SingleSelect member.\n         */\n        SingleSelect = 0,\n        \n        /**\n         * The MultiSelect member.\n         */\n        MultiSelect = 1,\n        \n        /**\n         * The FreeText member.\n         */\n        FreeText = 2\n    }\n    \n    /**\n     * DisplayTemplate enum type.\n     */\n    export enum DisplayTemplate {\n      \n        /**\n         * The List member.\n         */\n        List = 0,\n        \n        /**\n         * The Slider member.\n         */\n        Slider = 1,\n        \n        /**\n         * The SliderWithBars member.\n         */\n        SliderWithBars = 2,\n        \n        /**\n         * The Range member.\n         */\n        Range = 3,\n        \n        /**\n         * The TextBox member.\n         */\n        TextBox = 4\n    }\n    \n    /**\n     * ClientBookRefinerSource enum type.\n     */\n    export enum ClientBookRefinerSource {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Attribute member.\n         */\n        Attribute = 1,\n        \n        /**\n         * The CustomerSearchKeyword member.\n         */\n        CustomerSearchKeyword = 2,\n        \n        /**\n         * The StaffId member.\n         */\n        StaffId = 3\n    }\n    \n    /**\n     * ProductRefinerSource enum type.\n     */\n    export enum ProductRefinerSource {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Attribute member.\n         */\n        Attribute = 1,\n        \n        /**\n         * The Category member.\n         */\n        Category = 2,\n        \n        /**\n         * The Price member.\n         */\n        Price = 3,\n        \n        /**\n         * The Rating member.\n         */\n        Rating = 4\n    }\n    \n    /**\n     * LoyaltyCardTenderType enum type.\n     */\n    export enum LoyaltyCardTenderType {\n      \n        /**\n         * The AsCardTender member.\n         */\n        AsCardTender = 0,\n        \n        /**\n         * The AsContactTender member.\n         */\n        AsContactTender = 1,\n        \n        /**\n         * The NoTender member.\n         */\n        NoTender = 2,\n        \n        /**\n         * The Blocked member.\n         */\n        Blocked = 3\n    }\n    \n    /**\n     * ReleasedProductType enum type.\n     */\n    export enum ReleasedProductType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Item member.\n         */\n        Item = 1,\n        \n        /**\n         * The Service member.\n         */\n        Service = 2\n    }\n    \n    /**\n     * RetailChannelType enum type.\n     */\n    export enum RetailChannelType {\n      \n        /**\n         * The RetailStore member.\n         */\n        RetailStore = 0,\n        \n        /**\n         * The OnlineStore member.\n         */\n        OnlineStore = 1,\n        \n        /**\n         * The OnlineMarketplace member.\n         */\n        OnlineMarketplace = 2,\n        \n        /**\n         * The SharePointOnlineStore member.\n         */\n        SharePointOnlineStore = 3,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * LogOnConfiguration enum type.\n     */\n    export enum LogOnConfiguration {\n      \n        /**\n         * The LocalDatabase member.\n         */\n        LocalDatabase = 0,\n        \n        /**\n         * The RealTimeService member.\n         */\n        RealTimeService = 1\n    }\n    \n    /**\n     * TransactionServiceAuthenticationType enum type.\n     */\n    export enum TransactionServiceAuthenticationType {\n      \n        /**\n         * The CertificateAuthentication member.\n         */\n        CertificateAuthentication = 0,\n        \n        /**\n         * The ServiceToServiceAuthentication member.\n         */\n        ServiceToServiceAuthentication = 1,\n        \n        /**\n         * The AdfsServiceToServiceClientSecretAuthentication member.\n         */\n        AdfsServiceToServiceClientSecretAuthentication = 2,\n        \n        /**\n         * The ServiceToServiceClientCertificateAuthentication member.\n         */\n        ServiceToServiceClientCertificateAuthentication = 3,\n        \n        /**\n         * The AdfsServiceToServiceClientCertificateAuthentication member.\n         */\n        AdfsServiceToServiceClientCertificateAuthentication = 4\n    }\n    \n    /**\n     * IncludePersonalDataInGuestOrderLookupPolicy enum type.\n     */\n    export enum IncludePersonalDataInGuestOrderLookupPolicy {\n      \n        /**\n         * The Never member.\n         */\n        Never = 0,\n        \n        /**\n         * The GuestOrdersOnly member.\n         */\n        GuestOrdersOnly = 1,\n        \n        /**\n         * The AllOrders member.\n         */\n        AllOrders = 2\n    }\n    \n    /**\n     * RetailAddressBookType enum type.\n     */\n    export enum RetailAddressBookType {\n      \n        /**\n         * The Customer member.\n         */\n        Customer = 0,\n        \n        /**\n         * The Employee member.\n         */\n        Employee = 1,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * InventAvailabilityCalculationMode enum type.\n     */\n    export enum InventAvailabilityCalculationMode {\n      \n        /**\n         * The RealTimeService member.\n         */\n        RealTimeService = 0,\n        \n        /**\n         * The Channel member.\n         */\n        Channel = 1\n    }\n    \n    /**\n     * InventoryAvailabilityClientDisplayMode enum type.\n     */\n    export enum InventoryAvailabilityClientDisplayMode {\n      \n        /**\n         * The Raw member.\n         */\n        Raw = 0,\n        \n        /**\n         * The Buffered member.\n         */\n        Buffered = 1,\n        \n        /**\n         * The None member.\n         */\n        None = 2,\n        \n        /**\n         * The Unknown member.\n         */\n        Unknown = -1\n    }\n    \n    /**\n     * EmployeeActivityType enum type.\n     */\n    export enum EmployeeActivityType {\n      \n        /**\n         * The ClockIn member.\n         */\n        ClockIn = 0,\n        \n        /**\n         * The JobStop member.\n         */\n        JobStop = 1,\n        \n        /**\n         * The JobStart member.\n         */\n        JobStart = 2,\n        \n        /**\n         * The TeamStop member.\n         */\n        TeamStop = 3,\n        \n        /**\n         * The TeamStart member.\n         */\n        TeamStart = 4,\n        \n        /**\n         * The BreakFlowStart member.\n         */\n        BreakFlowStart = 5,\n        \n        /**\n         * The BreakCancelOne member.\n         */\n        BreakCancelOne = 6,\n        \n        /**\n         * The BreakCancelAll member.\n         */\n        BreakCancelAll = 7,\n        \n        /**\n         * The BreakFlowStop member.\n         */\n        BreakFlowStop = 8,\n        \n        /**\n         * The FinishQuantity member.\n         */\n        FinishQuantity = 9,\n        \n        /**\n         * The ClockOut member.\n         */\n        ClockOut = 10,\n        \n        /**\n         * The EventCode member.\n         */\n        EventCode = 11,\n        \n        /**\n         * The BreakFromWork member.\n         */\n        BreakFromWork = 12,\n        \n        /**\n         * The BreakForLunch member.\n         */\n        BreakForLunch = 13,\n        \n        /**\n         * The Logbook member.\n         */\n        Logbook = 14,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * DeliveryPreferenceType enum type.\n     */\n    export enum DeliveryPreferenceType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The ShipToAddress member.\n         */\n        ShipToAddress = 1,\n        \n        /**\n         * The PickupFromStore member.\n         */\n        PickupFromStore = 2,\n        \n        /**\n         * The ElectronicDelivery member.\n         */\n        ElectronicDelivery = 3,\n        \n        /**\n         * The DeliverItemsIndividually member.\n         */\n        DeliverItemsIndividually = 4\n    }\n    \n    /**\n     * LayoutType enum type.\n     */\n    export enum LayoutType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The ModernPosCompact member.\n         */\n        ModernPosCompact = 1,\n        \n        /**\n         * The ModernPosFull member.\n         */\n        ModernPosFull = 2,\n        \n        /**\n         * The Epos member.\n         */\n        Epos = 3\n    }\n    \n    /**\n     * SalesInvoiceType enum type.\n     */\n    export enum SalesInvoiceType {\n      \n        /**\n         * The Journal member.\n         */\n        Journal = 0,\n        \n        /**\n         * The DEL_Quotation member.\n         */\n        DEL_Quotation = 1,\n        \n        /**\n         * The Subscription member.\n         */\n        Subscription = 2,\n        \n        /**\n         * The Sales member.\n         */\n        Sales = 3,\n        \n        /**\n         * The ReturnItem member.\n         */\n        ReturnItem = 4,\n        \n        /**\n         * The DEL_Blanket member.\n         */\n        DEL_Blanket = 5,\n        \n        /**\n         * The ItemReq member.\n         */\n        ItemReq = 6\n    }\n    \n    /**\n     * InvoiceType enum type.\n     */\n    export enum InvoiceType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The SalesOrderInvoice member.\n         */\n        SalesOrderInvoice = 1,\n        \n        /**\n         * The FreeTextInvoice member.\n         */\n        FreeTextInvoice = 2,\n        \n        /**\n         * The ProjectInvoice member.\n         */\n        ProjectInvoice = 3,\n        \n        /**\n         * The CreditNoteInvoice member.\n         */\n        CreditNoteInvoice = 4,\n        \n        /**\n         * The FreeTextCreditNoteInvoice member.\n         */\n        FreeTextCreditNoteInvoice = 5,\n        \n        /**\n         * The ProjectCreditNoteInvoice member.\n         */\n        ProjectCreditNoteInvoice = 6\n    }\n    \n    /**\n     * InvoicePaidStatus enum type.\n     */\n    export enum InvoicePaidStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Unpaid member.\n         */\n        Unpaid = 1,\n        \n        /**\n         * The PartiallyPaid member.\n         */\n        PartiallyPaid = 2,\n        \n        /**\n         * The Paid member.\n         */\n        Paid = 3\n    }\n    \n    /**\n     * TaxOverrideType enum type.\n     */\n    export enum TaxOverrideType {\n      \n        /**\n         * The ItemSalesTaxGroup member.\n         */\n        ItemSalesTaxGroup = 0,\n        \n        /**\n         * The SalesTaxGroup member.\n         */\n        SalesTaxGroup = 1,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * TaxOverrideBy enum type.\n     */\n    export enum TaxOverrideBy {\n      \n        /**\n         * The Line member.\n         */\n        Line = 0,\n        \n        /**\n         * The Cart member.\n         */\n        Cart = 1,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * ReasonCodeInputRequiredType enum type.\n     */\n    export enum ReasonCodeInputRequiredType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Always member.\n         */\n        Always = 1,\n        \n        /**\n         * The Positive member.\n         */\n        Positive = 2,\n        \n        /**\n         * The Negative member.\n         */\n        Negative = 3\n    }\n    \n    /**\n     * RecordingValueType enum type.\n     */\n    export enum RecordingValueType {\n      \n        /**\n         * The Preferred member.\n         */\n        Preferred = 0,\n        \n        /**\n         * The Example member.\n         */\n        Example = 1\n    }\n    \n    /**\n     * UserActionType enum type.\n     */\n    export enum UserActionType {\n      \n        /**\n         * The Input member.\n         */\n        Input = 1,\n        \n        /**\n         * The Output member.\n         */\n        Output = 16,\n        \n        /**\n         * The Validation member.\n         */\n        Validation = 256\n    }\n    \n    /**\n     * ArtifactType enum type.\n     */\n    export enum ArtifactType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Ax7Bpm member.\n         */\n        Ax7Bpm = 1,\n        \n        /**\n         * The Visio member.\n         */\n        Visio = 2,\n        \n        /**\n         * The TaskGuide member.\n         */\n        TaskGuide = 3,\n        \n        /**\n         * The Ax6Bpm member.\n         */\n        Ax6Bpm = 4,\n        \n        /**\n         * The TaskGuideResources member.\n         */\n        TaskGuideResources = 5,\n        \n        /**\n         * The TaskXml member.\n         */\n        TaskXml = 6,\n        \n        /**\n         * The VideoWma member.\n         */\n        VideoWma = 7,\n        \n        /**\n         * The ProcessXml member.\n         */\n        ProcessXml = 8,\n        \n        /**\n         * The Trace member.\n         */\n        Trace = 9,\n        \n        /**\n         * The RapidStartXml member.\n         */\n        RapidStartXml = 10,\n        \n        /**\n         * The UserDrawing member.\n         */\n        UserDrawing = 100\n    }\n    \n    /**\n     * FrameworkAccess enum type.\n     */\n    export enum FrameworkAccess {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Global member.\n         */\n        Global = 1,\n        \n        /**\n         * The Corporate member.\n         */\n        Corporate = 2,\n        \n        /**\n         * The Private member.\n         */\n        Private = 3,\n        \n        /**\n         * The BoxPackage member.\n         */\n        BoxPackage = 4\n    }\n    \n    /**\n     * MetadataControl enum type.\n     */\n    export enum MetadataControl {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The SingleValue member.\n         */\n        SingleValue = 1,\n        \n        /**\n         * The MultiValue member.\n         */\n        MultiValue = 2,\n        \n        /**\n         * The Tags member.\n         */\n        Tags = 3,\n        \n        /**\n         * The Links member.\n         */\n        Links = 4,\n        \n        /**\n         * The ComboBox member.\n         */\n        ComboBox = 5,\n        \n        /**\n         * The MultiSelect member.\n         */\n        MultiSelect = 6\n    }\n    \n    /**\n     * FiscalIntegrationRegistrationStatus enum type.\n     */\n    export enum FiscalIntegrationRegistrationStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Completed member.\n         */\n        Completed = 1,\n        \n        /**\n         * The Skipped member.\n         */\n        Skipped = 2,\n        \n        /**\n         * The MarkedAsRegistered member.\n         */\n        MarkedAsRegistered = 3,\n        \n        /**\n         * The AutoSkipped member.\n         */\n        AutoSkipped = 4,\n        \n        /**\n         * The Postponed member.\n         */\n        Postponed = 5\n    }\n    \n    /**\n     * CustomerOrderOperation enum type.\n     */\n    export enum CustomerOrderOperation {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Edit member.\n         */\n        Edit = 1,\n        \n        /**\n         * The Cancel member.\n         */\n        Cancel = 2,\n        \n        /**\n         * The PickUpFromStore member.\n         */\n        PickUpFromStore = 3,\n        \n        /**\n         * The CreatePickingList member.\n         */\n        CreatePickingList = 4,\n        \n        /**\n         * The CreatePackingSlip member.\n         */\n        CreatePackingSlip = 5,\n        \n        /**\n         * The PrintPackingSlip member.\n         */\n        PrintPackingSlip = 6,\n        \n        /**\n         * The Return member.\n         */\n        Return = 7,\n        \n        /**\n         * The RejectFulfillmentLine member.\n         */\n        RejectFulfillmentLine = 8,\n        \n        /**\n         * The AcceptFulfillmentLine member.\n         */\n        AcceptFulfillmentLine = 9,\n        \n        /**\n         * The PackFulfillmentLine member.\n         */\n        PackFulfillmentLine = 10,\n        \n        /**\n         * The ShipFulfillmentLine member.\n         */\n        ShipFulfillmentLine = 11,\n        \n        /**\n         * The PickFulfillmentLine member.\n         */\n        PickFulfillmentLine = 12\n    }\n    \n    /**\n     * BusinessPartnerOperationType enum type.\n     */\n    export enum BusinessPartnerOperationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The CreateProspect member.\n         */\n        CreateProspect = 1,\n        \n        /**\n         * The AddUser member.\n         */\n        AddUser = 2,\n        \n        /**\n         * The DeleteUser member.\n         */\n        DeleteUser = 3,\n        \n        /**\n         * The EditUser member.\n         */\n        EditUser = 4,\n        \n        /**\n         * The AccountStatement member.\n         */\n        AccountStatement = 5,\n        \n        /**\n         * The InvoiceRequest member.\n         */\n        InvoiceRequest = 6,\n        \n        /**\n         * The PromoteBusinessPartner member.\n         */\n        PromoteBusinessPartner = 7\n    }\n    \n    /**\n     * BusinessPartnerOperationStatus enum type.\n     */\n    export enum BusinessPartnerOperationStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Processed member.\n         */\n        Processed = 1,\n        \n        /**\n         * The Error member.\n         */\n        Error = 2\n    }\n    \n    /**\n     * NatureOfAssessee enum type.\n     */\n    export enum NatureOfAssessee {\n      \n        /**\n         * The Company member.\n         */\n        Company = 0,\n        \n        /**\n         * The Huf member.\n         */\n        Huf = 1,\n        \n        /**\n         * The Firm member.\n         */\n        Firm = 2,\n        \n        /**\n         * The Individual member.\n         */\n        Individual = 3,\n        \n        /**\n         * The Aop member.\n         */\n        Aop = 4,\n        \n        /**\n         * The Boi member.\n         */\n        Boi = 5,\n        \n        /**\n         * The LocalAuthority member.\n         */\n        LocalAuthority = 6,\n        \n        /**\n         * The Others member.\n         */\n        Others = 7\n    }\n    \n    /**\n     * CartType enum type.\n     */\n    export enum CartType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Shopping member.\n         */\n        Shopping = 1,\n        \n        /**\n         * The Checkout member.\n         */\n        Checkout = 2,\n        \n        /**\n         * The CustomerOrder member.\n         */\n        CustomerOrder = 3,\n        \n        /**\n         * The IncomeExpense member.\n         */\n        IncomeExpense = 4,\n        \n        /**\n         * The AccountDeposit member.\n         */\n        AccountDeposit = 5\n    }\n    \n    /**\n     * CartStatus enum type.\n     */\n    export enum CartStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Created member.\n         */\n        Created = 1,\n        \n        /**\n         * The Suspended member.\n         */\n        Suspended = 2,\n        \n        /**\n         * The Voided member.\n         */\n        Voided = 3\n    }\n    \n    /**\n     * PeriodicDiscountsCalculateScope enum type.\n     */\n    export enum PeriodicDiscountsCalculateScope {\n      \n        /**\n         * The All member.\n         */\n        All = 0,\n        \n        /**\n         * The None member.\n         */\n        None = 1,\n        \n        /**\n         * The CouponDiscountsOnly member.\n         */\n        CouponDiscountsOnly = 2\n    }\n    \n    /**\n     * TaxCalculationType enum type.\n     */\n    export enum TaxCalculationType {\n      \n        /**\n         * The Regular member.\n         */\n        Regular = 0,\n        \n        /**\n         * The GTE member.\n         */\n        GTE = 1\n    }\n    \n    /**\n     * NoteRestriction enum type.\n     */\n    export enum NoteRestriction {\n      \n        /**\n         * The Internal member.\n         */\n        Internal = 0,\n        \n        /**\n         * The External member.\n         */\n        External = 1\n    }\n    \n    /**\n     * CustomerType enum type.\n     */\n    export enum CustomerType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Person member.\n         */\n        Person = 1,\n        \n        /**\n         * The Organization member.\n         */\n        Organization = 2\n    }\n    \n    /**\n     * ContactInfoType enum type.\n     */\n    export enum ContactInfoType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Phone member.\n         */\n        Phone = 1,\n        \n        /**\n         * The Email member.\n         */\n        Email = 2,\n        \n        /**\n         * The Url member.\n         */\n        Url = 3,\n        \n        /**\n         * The Telex member.\n         */\n        Telex = 4,\n        \n        /**\n         * The Fax member.\n         */\n        Fax = 5\n    }\n    \n    /**\n     * ChecklistStatus enum type.\n     */\n    export enum ChecklistStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The NotStarted member.\n         */\n        NotStarted = 1,\n        \n        /**\n         * The InProgress member.\n         */\n        InProgress = 2,\n        \n        /**\n         * The Completed member.\n         */\n        Completed = 3\n    }\n    \n    /**\n     * ChecklistTaskDeepLinkType enum type.\n     */\n    export enum ChecklistTaskDeepLinkType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Display member.\n         */\n        Display = 1,\n        \n        /**\n         * The Output member.\n         */\n        Output = 2,\n        \n        /**\n         * The Action member.\n         */\n        Action = 3,\n        \n        /**\n         * The Url member.\n         */\n        Url = 4,\n        \n        /**\n         * The PosOperation member.\n         */\n        PosOperation = 5,\n        \n        /**\n         * The CustomerAccount member.\n         */\n        CustomerAccount = 6,\n        \n        /**\n         * The PosOperationWithParameters member.\n         */\n        PosOperationWithParameters = 7\n    }\n    \n    /**\n     * ChecklistTaskStatus enum type.\n     */\n    export enum ChecklistTaskStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The NotStarted member.\n         */\n        NotStarted = 1,\n        \n        /**\n         * The InProgress member.\n         */\n        InProgress = 2,\n        \n        /**\n         * The Completed member.\n         */\n        Completed = 3\n    }\n    \n    /**\n     * DocumentStatus enum type.\n     */\n    export enum DocumentStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Quotation member.\n         */\n        Quotation = 1,\n        \n        /**\n         * The PurchaseOrder member.\n         */\n        PurchaseOrder = 2,\n        \n        /**\n         * The Confirmation member.\n         */\n        Confirmation = 3,\n        \n        /**\n         * The PickingList member.\n         */\n        PickingList = 4,\n        \n        /**\n         * The PackingSlip member.\n         */\n        PackingSlip = 5,\n        \n        /**\n         * The ReceiptsList member.\n         */\n        ReceiptsList = 6,\n        \n        /**\n         * The Invoice member.\n         */\n        Invoice = 7,\n        \n        /**\n         * The ApproveJournal member.\n         */\n        ApproveJournal = 8,\n        \n        /**\n         * The ProjectInvoice member.\n         */\n        ProjectInvoice = 9,\n        \n        /**\n         * The ProjectPackingSlip member.\n         */\n        ProjectPackingSlip = 10,\n        \n        /**\n         * The CRMQuotation member.\n         */\n        CRMQuotation = 11,\n        \n        /**\n         * The Lost member.\n         */\n        Lost = 12,\n        \n        /**\n         * The Canceled member.\n         */\n        Canceled = 13,\n        \n        /**\n         * The FreeTextInvoice member.\n         */\n        FreeTextInvoice = 14,\n        \n        /**\n         * The RFQ member.\n         */\n        RFQ = 15,\n        \n        /**\n         * The RFQAccept member.\n         */\n        RFQAccept = 16,\n        \n        /**\n         * The RFQReject member.\n         */\n        RFQReject = 17,\n        \n        /**\n         * The PurchaseRequest member.\n         */\n        PurchaseRequest = 18,\n        \n        /**\n         * The RFQResend member.\n         */\n        RFQResend = 19\n    }\n    \n    /**\n     * CustomerOrderType enum type.\n     */\n    export enum CustomerOrderType {\n      \n        /**\n         * The SalesOrder member.\n         */\n        SalesOrder = 0,\n        \n        /**\n         * The Quote member.\n         */\n        Quote = 1\n    }\n    \n    /**\n     * LineDiscountCalculationType enum type.\n     */\n    export enum LineDiscountCalculationType {\n      \n        /**\n         * The Line member.\n         */\n        Line = 0,\n        \n        /**\n         * The Multiline member.\n         */\n        Multiline = 1,\n        \n        /**\n         * The MaxLineMultiline member.\n         */\n        MaxLineMultiline = 2,\n        \n        /**\n         * The MinLineMultiline member.\n         */\n        MinLineMultiline = 3,\n        \n        /**\n         * The LinePlusMultiline member.\n         */\n        LinePlusMultiline = 4,\n        \n        /**\n         * The LineMultiplyMultiline member.\n         */\n        LineMultiplyMultiline = 5\n    }\n    \n    /**\n     * ShiftStatus enum type.\n     */\n    export enum ShiftStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Open member.\n         */\n        Open = 1,\n        \n        /**\n         * The Closed member.\n         */\n        Closed = 2,\n        \n        /**\n         * The BlindClosed member.\n         */\n        BlindClosed = 3,\n        \n        /**\n         * The Suspended member.\n         */\n        Suspended = 4,\n        \n        /**\n         * The Invalid member.\n         */\n        Invalid = 5\n    }\n    \n    /**\n     * TaxRegistrationType enum type.\n     */\n    export enum TaxRegistrationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The INN member.\n         */\n        INN = 1,\n        \n        /**\n         * The KPP member.\n         */\n        KPP = 2,\n        \n        /**\n         * The OKPO member.\n         */\n        OKPO = 3,\n        \n        /**\n         * The OKDP member.\n         */\n        OKDP = 4,\n        \n        /**\n         * The OKATO member.\n         */\n        OKATO = 5,\n        \n        /**\n         * The OGRN member.\n         */\n        OGRN = 6,\n        \n        /**\n         * The SNILS member.\n         */\n        SNILS = 7,\n        \n        /**\n         * The CIFTS member.\n         */\n        CIFTS = 8,\n        \n        /**\n         * The UID member.\n         */\n        UID = 9,\n        \n        /**\n         * The TaxId member.\n         */\n        TaxId = 10,\n        \n        /**\n         * The BranchId member.\n         */\n        BranchId = 11,\n        \n        /**\n         * The CommercialRegisterCZ member.\n         */\n        CommercialRegisterCZ = 12,\n        \n        /**\n         * The CustomsCustomerId member.\n         */\n        CustomsCustomerId = 14,\n        \n        /**\n         * The Passport member.\n         */\n        Passport = 15,\n        \n        /**\n         * The OfficialIdDoc member.\n         */\n        OfficialIdDoc = 16,\n        \n        /**\n         * The ResidenceCertificate member.\n         */\n        ResidenceCertificate = 17,\n        \n        /**\n         * The OtherIdDoc member.\n         */\n        OtherIdDoc = 18,\n        \n        /**\n         * The NotCensused member.\n         */\n        NotCensused = 19,\n        \n        /**\n         * The BusinessPremiseId member.\n         */\n        BusinessPremiseId = 20,\n        \n        /**\n         * The LotteryCode member.\n         */\n        LotteryCode = 21\n    }\n    \n    /**\n     * CommerceListType enum type.\n     */\n    export enum CommerceListType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The WishList member.\n         */\n        WishList = 1\n    }\n    \n    /**\n     * ProductListType enum type.\n     */\n    export enum ProductListType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The OrderTemplate member.\n         */\n        OrderTemplate = 1,\n        \n        /**\n         * The QuickOrder member.\n         */\n        QuickOrder = 2,\n        \n        /**\n         * The WishList member.\n         */\n        WishList = 3\n    }\n    \n    /**\n     * RecommendationType enum type.\n     */\n    export enum RecommendationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Editorial member.\n         */\n        Editorial = 1,\n        \n        /**\n         * The New member.\n         */\n        New = 2,\n        \n        /**\n         * The Trending member.\n         */\n        Trending = 3,\n        \n        /**\n         * The Bestselling member.\n         */\n        Bestselling = 4,\n        \n        /**\n         * The Cart member.\n         */\n        Cart = 5,\n        \n        /**\n         * The PeopleAlsoBuy member.\n         */\n        PeopleAlsoBuy = 6,\n        \n        /**\n         * The Picks member.\n         */\n        Picks = 7,\n        \n        /**\n         * The ShopSimilarLooks member.\n         */\n        ShopSimilarLooks = 8,\n        \n        /**\n         * The ShopSimilarDescriptions member.\n         */\n        ShopSimilarDescriptions = 9\n    }\n    \n    /**\n     * PurchaseTransferOrderType enum type.\n     */\n    export enum PurchaseTransferOrderType {\n      \n        /**\n         * The Unknown member.\n         */\n        Unknown = 0,\n        \n        /**\n         * The PurchaseOrder member.\n         */\n        PurchaseOrder = 1,\n        \n        /**\n         * The TransferIn member.\n         */\n        TransferIn = 2,\n        \n        /**\n         * The TransferOut member.\n         */\n        TransferOut = 3,\n        \n        /**\n         * The TransferOrder member.\n         */\n        TransferOrder = 4,\n        \n        /**\n         * The PickingList member.\n         */\n        PickingList = 5\n    }\n    \n    /**\n     * BusinessPartnerUserStatus enum type.\n     */\n    export enum BusinessPartnerUserStatus {\n      \n        /**\n         * The Pending member.\n         */\n        Pending = 0,\n        \n        /**\n         * The Active member.\n         */\n        Active = 1,\n        \n        /**\n         * The Removed member.\n         */\n        Removed = 2\n    }\n    \n    /**\n     * InventoryAccuracy enum type.\n     */\n    export enum InventoryAccuracy {\n      \n        /**\n         * The Default member.\n         */\n        Default = 0,\n        \n        /**\n         * The Low member.\n         */\n        Low = 1,\n        \n        /**\n         * The Realtime member.\n         */\n        Realtime = 2\n    }\n    \n    /**\n     * ElectronicAddressType enum type.\n     */\n    export enum ElectronicAddressType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Email member.\n         */\n        Email = 1\n    }\n    \n    /**\n     * MediaUsageType enum type.\n     */\n    export enum MediaUsageType {\n      \n        /**\n         * The Primary member.\n         */\n        Primary = 0,\n        \n        /**\n         * The Additional member.\n         */\n        Additional = 1,\n        \n        /**\n         * The All member.\n         */\n        All = 2,\n        \n        /**\n         * The None member.\n         */\n        None = -1\n    }\n    \n    /**\n     * DateValidationType enum type.\n     */\n    export enum DateValidationType {\n      \n        /**\n         * The Advanced member.\n         */\n        Advanced = 0,\n        \n        /**\n         * The Standard member.\n         */\n        Standard = 1\n    }\n    \n    /**\n     * AffiliationFilterType enum type.\n     */\n    export enum AffiliationFilterType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Hidden member.\n         */\n        Hidden = 1,\n        \n        /**\n         * The NoneHidden member.\n         */\n        NoneHidden = 2,\n        \n        /**\n         * The All member.\n         */\n        All = 3\n    }\n    \n    /**\n     * DownloadSessionStatus enum type.\n     */\n    export enum DownloadSessionStatus {\n      \n        /**\n         * The Started member.\n         */\n        Started = 0,\n        \n        /**\n         * The Available member.\n         */\n        Available = 1,\n        \n        /**\n         * The Requested member.\n         */\n        Requested = 2,\n        \n        /**\n         * The Downloaded member.\n         */\n        Downloaded = 3,\n        \n        /**\n         * The Applied member.\n         */\n        Applied = 4,\n        \n        /**\n         * The Canceled member.\n         */\n        Canceled = 5,\n        \n        /**\n         * The CreateFailed member.\n         */\n        CreateFailed = 6,\n        \n        /**\n         * The DownloadFailed member.\n         */\n        DownloadFailed = 7,\n        \n        /**\n         * The ApplyFailed member.\n         */\n        ApplyFailed = 8\n    }\n    \n    /**\n     * HardwareStationType enum type.\n     */\n    export enum HardwareStationType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Shared member.\n         */\n        Shared = 1,\n        \n        /**\n         * The Dedicated member.\n         */\n        Dedicated = 2\n    }\n    \n    /**\n     * AuditEventUploadType enum type.\n     */\n    export enum AuditEventUploadType {\n      \n        /**\n         * The Async member.\n         */\n        Async = 0,\n        \n        /**\n         * The RealTime member.\n         */\n        RealTime = 1\n    }\n    \n    /**\n     * AuditEventType enum type.\n     */\n    export enum AuditEventType {\n      \n        /**\n         * The Unknown member.\n         */\n        Unknown = 0,\n        \n        /**\n         * The UserLogOn member.\n         */\n        UserLogOn = 1,\n        \n        /**\n         * The UserLogOff member.\n         */\n        UserLogOff = 2,\n        \n        /**\n         * The ManagerOverride member.\n         */\n        ManagerOverride = 3,\n        \n        /**\n         * The ItemVoid member.\n         */\n        ItemVoid = 4,\n        \n        /**\n         * The TransactionVoid member.\n         */\n        TransactionVoid = 5,\n        \n        /**\n         * The PrintReceiptCopy member.\n         */\n        PrintReceiptCopy = 6,\n        \n        /**\n         * The PriceCheck member.\n         */\n        PriceCheck = 7,\n        \n        /**\n         * The TaxOverride member.\n         */\n        TaxOverride = 8,\n        \n        /**\n         * The QuantityCorrection member.\n         */\n        QuantityCorrection = 9,\n        \n        /**\n         * The PurgeTransactionsData member.\n         */\n        PurgeTransactionsData = 10\n    }\n    \n    /**\n     * AuditLogTraceLevel enum type.\n     */\n    export enum AuditLogTraceLevel {\n      \n        /**\n         * The Trace member.\n         */\n        Trace = 0,\n        \n        /**\n         * The Debug member.\n         */\n        Debug = 1,\n        \n        /**\n         * The Error member.\n         */\n        Error = 2\n    }\n    \n    /**\n     * FiscalIntegrationEventType enum type.\n     */\n    export enum FiscalIntegrationEventType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Sale member.\n         */\n        Sale = 1,\n        \n        /**\n         * The PrintReceiptCopy member.\n         */\n        PrintReceiptCopy = 2,\n        \n        /**\n         * The ZReport member.\n         */\n        ZReport = 3,\n        \n        /**\n         * The XReport member.\n         */\n        XReport = 4,\n        \n        /**\n         * The CloseShift member.\n         */\n        CloseShift = 5,\n        \n        /**\n         * The BankDrop member.\n         */\n        BankDrop = 6,\n        \n        /**\n         * The TenderDeclaration member.\n         */\n        TenderDeclaration = 7,\n        \n        /**\n         * The RemoveTender member.\n         */\n        RemoveTender = 8,\n        \n        /**\n         * The FloatEntry member.\n         */\n        FloatEntry = 9,\n        \n        /**\n         * The SafeDrop member.\n         */\n        SafeDrop = 10,\n        \n        /**\n         * The StartingAmount member.\n         */\n        StartingAmount = 11,\n        \n        /**\n         * The PackingSlip member.\n         */\n        PackingSlip = 12,\n        \n        /**\n         * The GiftReceipt member.\n         */\n        GiftReceipt = 13,\n        \n        /**\n         * The CustomerAccountDeposit member.\n         */\n        CustomerAccountDeposit = 14,\n        \n        /**\n         * The CreditMemo member.\n         */\n        CreditMemo = 15,\n        \n        /**\n         * The EditCustomerOrder member.\n         */\n        EditCustomerOrder = 16,\n        \n        /**\n         * The CreateCustomerOrder member.\n         */\n        CreateCustomerOrder = 17,\n        \n        /**\n         * The DepositOverride member.\n         */\n        DepositOverride = 18,\n        \n        /**\n         * The FiscalXReport member.\n         */\n        FiscalXReport = 19,\n        \n        /**\n         * The FiscalZReport member.\n         */\n        FiscalZReport = 20,\n        \n        /**\n         * The AuditEvent member.\n         */\n        AuditEvent = 21,\n        \n        /**\n         * The OpenDrawer member.\n         */\n        OpenDrawer = 22,\n        \n        /**\n         * The CancelCustomerOrder member.\n         */\n        CancelCustomerOrder = 23,\n        \n        /**\n         * The BeginSale member.\n         */\n        BeginSale = 24,\n        \n        /**\n         * The PreSale member.\n         */\n        PreSale = 25,\n        \n        /**\n         * The IncomeAccounts member.\n         */\n        IncomeAccounts = 26,\n        \n        /**\n         * The ExpenseAccounts member.\n         */\n        ExpenseAccounts = 27,\n        \n        /**\n         * The VoidTransaction member.\n         */\n        VoidTransaction = 28,\n        \n        /**\n         * The SuspendTransaction member.\n         */\n        SuspendTransaction = 29,\n        \n        /**\n         * The RecallTransaction member.\n         */\n        RecallTransaction = 30\n    }\n    \n    /**\n     * FiscalIntegrationDocumentGenerationResultType enum type.\n     */\n    export enum FiscalIntegrationDocumentGenerationResultType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Succeeded member.\n         */\n        Succeeded = 1,\n        \n        /**\n         * The NotSupported member.\n         */\n        NotSupported = 2,\n        \n        /**\n         * The NotRequired member.\n         */\n        NotRequired = 3,\n        \n        /**\n         * The Failed member.\n         */\n        Failed = 4\n    }\n    \n    /**\n     * FiscalIntegrationRegistrationProcessMode enum type.\n     */\n    export enum FiscalIntegrationRegistrationProcessMode {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Disabled member.\n         */\n        Disabled = 1,\n        \n        /**\n         * The Excepted member.\n         */\n        Excepted = 2,\n        \n        /**\n         * The Full member.\n         */\n        Full = 3\n    }\n    \n    /**\n     * FiscalIntegrationServiceCommunicationResultType enum type.\n     */\n    export enum FiscalIntegrationServiceCommunicationResultType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Succeeded member.\n         */\n        Succeeded = 1,\n        \n        /**\n         * The Failed member.\n         */\n        Failed = 2\n    }\n    \n    /**\n     * FiscalIntegrationServiceFailureType enum type.\n     */\n    export enum FiscalIntegrationServiceFailureType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Busy member.\n         */\n        Busy = 1,\n        \n        /**\n         * The NotAvailable member.\n         */\n        NotAvailable = 2,\n        \n        /**\n         * The SubmissionFailed member.\n         */\n        SubmissionFailed = 3,\n        \n        /**\n         * The Other member.\n         */\n        Other = 4,\n        \n        /**\n         * The BadResponse member.\n         */\n        BadResponse = 5,\n        \n        /**\n         * The Timeout member.\n         */\n        Timeout = 6\n    }\n    \n    /**\n     * PickupTimeslotAvailabilitySearchOption enum type.\n     */\n    export enum PickupTimeslotAvailabilitySearchOption {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The DailyGroupingTimeslotOnly member.\n         */\n        DailyGroupingTimeslotOnly = 1,\n        \n        /**\n         * The All member.\n         */\n        All = 2\n    }\n    \n    /**\n     * VendorValidationResultLevel enum type.\n     */\n    export enum VendorValidationResultLevel {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Approved member.\n         */\n        Approved = 1,\n        \n        /**\n         * The ApprovedWithWarning member.\n         */\n        ApprovedWithWarning = 2,\n        \n        /**\n         * The NotApproved member.\n         */\n        NotApproved = 3\n    }\n    \n    /**\n     * AttachedServiceStatus enum type.\n     */\n    export enum AttachedServiceStatus {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Disabled member.\n         */\n        Disabled = 1,\n        \n        /**\n         * The InProgress member.\n         */\n        InProgress = 2,\n        \n        /**\n         * The Enabled member.\n         */\n        Enabled = 3,\n        \n        /**\n         * The Submitted member.\n         */\n        Submitted = 4\n    }\n    \n    /**\n     * ReceiptEmailBehavior enum type.\n     */\n    export enum ReceiptEmailBehavior {\n      \n        /**\n         * The DoNotEmail member.\n         */\n        DoNotEmail = 0,\n        \n        /**\n         * The PromptUser member.\n         */\n        PromptUser = 1,\n        \n        /**\n         * The AlwaysEmail member.\n         */\n        AlwaysEmail = 2\n    }\n    \n    /**\n     * CartLineQuantityLimitsErrors enum type.\n     */\n    export enum CartLineQuantityLimitsErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AddingItem_QuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AddingItem_QuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_QuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_QuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber\n    }\n    \n    /**\n     * CommunicationErrors enum type.\n     */\n    export enum CommunicationErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault\n    }\n    \n    /**\n     * ConfigurationErrors enum type.\n     */\n    export enum ConfigurationErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SecretNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SecretNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound\n    }\n    \n    /**\n     * DataValidationErrors enum type.\n     */\n    export enum DataValidationErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The RegexAttribute_ValidationError member.\n         */\n        RegexAttribute_ValidationError,\n        \n        /**\n         * The RequiredAttribute_ValidationError member.\n         */\n        RequiredAttribute_ValidationError,\n        \n        /**\n         * The StringLengthAttribute_ValidationError member.\n         */\n        StringLengthAttribute_ValidationError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DuplicateObject member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DuplicateObject,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidFormat member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidFormat,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MissingParameter member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MissingParameter,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequest member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnknownRequest,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnSupportedType member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnSupportedType,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IdMismatch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IdMismatch,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidRequest member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidRequest,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCounty member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCounty,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCity member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCity,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidAddress member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidAddress,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CartNotActive member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CartNotActive,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidStatus member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidStatus,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CartNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CartNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidOperation member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidOperation,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidAmount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidAmount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartState member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCartState,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidProduct member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidProduct,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_InvalidShift member.\n         */\n        Microsoft_Dynamics_Commerce_InvalidShift,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing,\n        \n        /**\n         * The Microsoft_Dynamics_RetailServer_BadRequest member.\n         */\n        Microsoft_Dynamics_RetailServer_BadRequest,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty\n    }\n    \n    /**\n     * InvoiceDataValidationErrors enum type.\n     */\n    export enum InvoiceDataValidationErrors {\n      \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvoiceNotExists member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvoiceNotExists\n    }\n    \n    /**\n     * FeatureNotSupportedErrors enum type.\n     */\n    export enum FeatureNotSupportedErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DataSignatureRequestHandlerExecutionDeprecated member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DataSignatureRequestHandlerExecutionDeprecated\n    }\n    \n    /**\n     * SecurityErrors enum type.\n     */\n    export enum SecurityErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UserNotActivated member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UserNotActivated,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PasswordRequired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PasswordRequired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidPassword member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidPassword,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidExtendedAuthenticationCredentials member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidExtendedAuthenticationCredentials,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannel member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidChannel,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidAudience member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidAudience,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_EmployeeIsConfiguredAsBlockLogin member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_EmployeeIsConfiguredAsBlockLogin,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InternalServerError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InternalServerError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OnBehalfOfNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OnBehalfOfNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_IdentityProviderTypeNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_IdentityProviderTypeNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChannelNotAccessibleInB2BOrganization member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChannelNotAccessibleInB2BOrganization,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_B2CCustomerAccessB2BChannelNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_B2CCustomerAccessB2BChannelNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CommerceCustomerIdentityNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CommerceCustomerIdentityNotFound\n    }\n    \n    /**\n     * StorageErrors enum type.\n     */\n    export enum StorageErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TransientStorageError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TransientStorageError,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ValueTooLong member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ValueTooLong\n    }\n    \n    /**\n     * VersionNotSupportedErrors enum type.\n     */\n    export enum VersionNotSupportedErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported\n    }\n    \n    /**\n     * PaymentErrors enum type.\n     */\n    export enum PaymentErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_FraudRisk member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_FraudRisk,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TenderLineIsNotAvailableInSalesTransaction member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TenderLineIsNotAvailableInSalesTransaction,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit\n    }\n    \n    /**\n     * FiscalIntegrationServiceErrors enum type.\n     */\n    export enum FiscalIntegrationServiceErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableResolveRegistrationProcess member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableResolveRegistrationProcess,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnableResolveTechnicalProfileForRegistrationProcessLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnableResolveTechnicalProfileForRegistrationProcessLine\n    }\n    \n    /**\n     * CommerceDataExchangeErrors enum type.\n     */\n    export enum CommerceDataExchangeErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CdxDataPackageApplicationFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CdxDataPackageApplicationFailure,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CdxSyncLibraryHealthCheckFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CdxSyncLibraryHealthCheckFailure\n    }\n    \n    /**\n     * TaskManagementErrorCode enum type.\n     */\n    export enum TaskManagementErrorCode {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CreateTaskFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CreateTaskFailure = 1,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GetTaskFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GetTaskFailure = 2,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UpdateTaskFailure member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UpdateTaskFailure = 3,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphCallTimeOut member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphCallTimeOut = 4,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnauthorized member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnauthorized = 5,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotFound = 6,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceConflict member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphServiceConflict = 7,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceVersionMismatch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphServiceVersionMismatch = 8,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceGeneralError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphServiceGeneralError = 9,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumActiveTasksInProject member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumActiveTasksInProject = 10,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumAssigneesInTasks member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumAssigneesInTasks = 11,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksAssignedToUser member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksAssignedToUser = 12,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksCreatedByUser member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksCreatedByUser = 13,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksInProject member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksInProject = 14,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumBucketsInProject member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumBucketsInProject = 15,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumChecklistItemsOnTask member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumChecklistItemsOnTask = 16,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumPlannerPlans member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumPlannerPlans = 17,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsOwnedByUser member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsOwnedByUser = 18,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsSharedWithUser member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsSharedWithUser = 19,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumReferencesOnTask member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumReferencesOnTask = 20,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumUsersSharedWithProject member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumUsersSharedWithProject = 21,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_General member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_General = 22,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotValidData member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotValidData = 23,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceInternalServerError member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphServiceInternalServerError = 24,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnavailable member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnavailable = 25,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToGetPlanId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToGetPlanId = 26,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToFindExternalSubId member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToFindExternalSubId = 27,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TaskService_EmptyGraphToken member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TaskService_EmptyGraphToken = 28\n    }\n    \n    /**\n     * PricingDataValidationErrors enum type.\n     */\n    export enum PricingDataValidationErrors {\n      \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithNoLineGroups member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithNoLineGroups,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_StartDateTimeLaterThanEndDateTime member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_StartDateTimeLaterThanEndDateTime,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PricingPropertyHandlerNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PricingPropertyHandlerNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultiplePricingPropertyHandlerFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultiplePricingPropertyHandlerFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PriceTradeAgreementRequestPropertyValueCannotBeNull member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PriceTradeAgreementRequestPropertyValueCannotBeNull,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AmbiguousParameters member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AmbiguousParameters,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PriceAttributeHandlerNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PriceAttributeHandlerNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultiplePriceAttributeHandlerFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultiplePriceAttributeHandlerFound\n    }\n    \n    /**\n     * ProductPricingConfigurationErrorCode enum type.\n     */\n    export enum ProductPricingConfigurationErrorCode {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The MissingItemId member.\n         */\n        MissingItemId = 1,\n        \n        /**\n         * The MissingUnitOfMeasure member.\n         */\n        MissingUnitOfMeasure = 2,\n        \n        /**\n         * The InvalidQuantity member.\n         */\n        InvalidQuantity = 4\n    }\n    \n    /**\n     * OrderDataValidationErrors enum type.\n     */\n    export enum OrderDataValidationErrors {\n      \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidPickupTimeslot member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidPickupTimeslot,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidPickupTimeslotAvailabilitiesSearchOption member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidPickupTimeslotAvailabilitiesSearchOption,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NonInvoicelinesNotAllowedForSalesInvoice member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NonInvoicelinesNotAllowedForSalesInvoice,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidTaxOverrideCode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidTaxOverrideCode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OrderPickupForCheckInNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OrderPickupForCheckInNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_OrderPickupForCheckInNotValid member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_OrderPickupForCheckInNotValid,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotLoadTransactionFromHeadquarters member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotLoadTransactionFromHeadquarters,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReturnSerialNumberMismatch member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReturnSerialNumberMismatch,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MultipleQuickOrdersPerCustomer member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MultipleQuickOrdersPerCustomer,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPriceForInvoiceLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPriceForInvoiceLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInGreatherThanZeroForInvoiceLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_MustKeyInGreatherThanZeroForInvoiceLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerInSuspendedCartNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerInSuspendedCartNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ReturnReasonCodeNotProvided member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ReturnReasonCodeNotProvided,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_StoreIdDoesNotExist member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_StoreIdDoesNotExist,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithNonAdminHavingInvoiceAccount member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithNonAdminHavingInvoiceAccount,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DeliveryAddressIsMissingCountryOrRegionCode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DeliveryAddressIsMissingCountryOrRegionCode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenCartAndTenderLine member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenCartAndTenderLine,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ChargeDescriptionExceededMaximumLength member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ChargeDescriptionExceededMaximumLength,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionShippingAddress member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionShippingAddress,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionDeliveryDate member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionDeliveryDate,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionDeliveryMode member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionDeliveryMode,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotOverrideDepositForB2bCustomer member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotOverrideDepositForB2bCustomer,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_StoreNumberMustBeProvidedWhenItemSetPicked member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_StoreNumberMustBeProvidedWhenItemSetPicked,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotGiftCard member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_ProductIsNotGiftCard,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidTransactionTypeForRecalledOrder member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidTransactionTypeForRecalledOrder,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedCartLines member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_DuplicatedCartLines,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidForceCompleteTransactionUsage member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidForceCompleteTransactionUsage,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_TransactionAlreadyExistsDiffersByType member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_TransactionAlreadyExistsDiffersByType,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_AsynchronousOrderCancellationWorkflowAlreadyExists member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_AsynchronousOrderCancellationWorkflowAlreadyExists,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidAsynchronousCancellationTargetOrder member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidAsynchronousCancellationTargetOrder,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotCreateSynchronousCustomerOrderForAsyncCustomer member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotCreateSynchronousCustomerOrderForAsyncCustomer,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_UnsupportedOrderSearchSortColumn member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_UnsupportedOrderSearchSortColumn,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_RetailOperationForGettingTenderTypeIsNotSupported member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_RetailOperationForGettingTenderTypeIsNotSupported,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotValidForCancellationRequest member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotValidForCancellationRequest,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CannotCreateCart member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CannotCreateCart,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrderCannotIncludeCashAndCarryReturnsFlight member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_CustomerOrderCannotIncludeCashAndCarryReturnsFlight\n    }\n    \n    /**\n     * PaymentConfigurationErrors enum type.\n     */\n    export enum PaymentConfigurationErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardPaymentNotConfigured member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardPaymentNotConfigured,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_NotValidCardTypeInformation member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_NotValidCardTypeInformation,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_InvalidDataInTokenizedCard member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_InvalidDataInTokenizedCard,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorFilesNotFoundWhileLoadingAssemblies member.\n         */\n        Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorFilesNotFoundWhileLoadingAssemblies\n    }\n    \n    /**\n     * TaxLimitBase enum type.\n     */\n    export enum TaxLimitBase {\n      \n        /**\n         * The LineWithoutVat member.\n         */\n        LineWithoutVat = 0,\n        \n        /**\n         * The UnitWithoutVat member.\n         */\n        UnitWithoutVat = 1,\n        \n        /**\n         * The InvoiceWithoutVat member.\n         */\n        InvoiceWithoutVat = 2,\n        \n        /**\n         * The LineWithVat member.\n         */\n        LineWithVat = 3,\n        \n        /**\n         * The UnitWithVat member.\n         */\n        UnitWithVat = 4,\n        \n        /**\n         * The InvoiceWithVat member.\n         */\n        InvoiceWithVat = 5\n    }\n    \n    /**\n     * OnlineStoreCustomerType enum type.\n     */\n    export enum OnlineStoreCustomerType {\n      \n        /**\n         * The B2C member.\n         */\n        B2C = 0,\n        \n        /**\n         * The B2B member.\n         */\n        B2B = 1\n    }\n    \n    /**\n     * BusinessPartnerOperationDeliveryType enum type.\n     */\n    export enum BusinessPartnerOperationDeliveryType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Email member.\n         */\n        Email = 1\n    }\n    \n    /**\n     * ProspectType enum type.\n     */\n    export enum ProspectType {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Buyer member.\n         */\n        Buyer = 1,\n        \n        /**\n         * The BuyerSeller member.\n         */\n        BuyerSeller = 2\n    }\n    \n    /**\n     * WrongEndpointErrors enum type.\n     */\n    export enum WrongEndpointErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Commerce_WrongEndpoint member.\n         */\n        Microsoft_Dynamics_Commerce_WrongEndpoint\n    }\n    \n    /**\n     * RetailServerApiErrors enum type.\n     */\n    export enum RetailServerApiErrors {\n      \n        /**\n         * The None member.\n         */\n        None,\n        \n        /**\n         * The Microsoft_Dynamics_Internal_Server_Error member.\n         */\n        Microsoft_Dynamics_Internal_Server_Error,\n        \n        /**\n         * The Microsoft_Dynamics_RetailServer_BadRequest member.\n         */\n        Microsoft_Dynamics_RetailServer_BadRequest,\n        \n        /**\n         * The Microsoft_Dynamics_RetailServer_RequestTooLarge member.\n         */\n        Microsoft_Dynamics_RetailServer_RequestTooLarge,\n        \n        /**\n         * The Microsoft_Dynamics_RetailServer_ODataModelError member.\n         */\n        Microsoft_Dynamics_RetailServer_ODataModelError,\n        \n        /**\n         * The Microsoft_Dynamics_RetailServer_MissingRequiredArgument member.\n         */\n        Microsoft_Dynamics_RetailServer_MissingRequiredArgument,\n        \n        /**\n         * The Microsoft_Dynamics_RetailServer_InvalidArgumentType member.\n         */\n        Microsoft_Dynamics_RetailServer_InvalidArgumentType,\n        \n        /**\n         * The Microsoft_Dynamics_RetailServer_ParameterHasNullValue member.\n         */\n        Microsoft_Dynamics_RetailServer_ParameterHasNullValue,\n        \n        /**\n         * The Microsoft_Dynamics_RetailServer_MultipleValuesOfSameArgument member.\n         */\n        Microsoft_Dynamics_RetailServer_MultipleValuesOfSameArgument,\n        \n        /**\n         * The Microsoft_Dynamics_RetailServer_ODataControllerError member.\n         */\n        Microsoft_Dynamics_RetailServer_ODataControllerError\n    }\n    \n    /**\n     * ExceptionSeverity enum type.\n     */\n    export enum ExceptionSeverity {\n      \n        /**\n         * The None member.\n         */\n        None = 0,\n        \n        /**\n         * The Error member.\n         */\n        Error = 1,\n        \n        /**\n         * The Warning member.\n         */\n        Warning = 2,\n        \n        /**\n         * The Critical member.\n         */\n        Critical = 3,\n        \n        /**\n         * The Informational member.\n         */\n        Informational = 4\n    }\n    \n    /**\n     * Category entity interface.\n     */\n    export interface Category {\n        RecordId: number;\n        OfflineImage?: string;\n        Name?: string;\n        ParentCategory?: number;\n        DisplayOrder?: number;\n        LocalizedDescription?: string;\n        Images?: MediaLocation[];\n        NameTranslations?: TextValueTranslation[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Cart entity interface.\n     */\n    export interface Cart {\n        AffiliationLines?: AffiliationLoyaltyTier[];\n        IsRequiredAmountPaid?: boolean;\n        IsDiscountFullyCalculated?: boolean;\n        IgnoreDiscountCalculation?: boolean;\n        AmountDue?: number;\n        AmountPaid?: number;\n        AttributeValues?: AttributeValueBase[];\n        IsTaxIncludedInPrice?: boolean;\n        BeginDateTime?: Date;\n        BusinessDate?: Date;\n        CancellationChargeAmount?: number;\n        EstimatedShippingAmount?: number;\n        CartLines?: CartLine[];\n        CartTypeValue?: number;\n        ChannelId?: number;\n        ChargeAmount?: number;\n        CustomerOrderRemainingBalance?: number;\n        ChargeLines?: ChargeLine[];\n        TaxViewLines?: TaxViewLine[];\n        Comment?: string;\n        InvoiceComment?: string;\n        Coupons?: Coupon[];\n        CustomerId?: string;\n        CustomerOrderModeValue?: number;\n        DeliveryMode?: string;\n        DeliveryModeChargeAmount?: number;\n        DiscountAmount?: number;\n        DiscountAmountWithoutTax?: number;\n        DiscountCodes?: string[];\n        Id: string;\n        SuspendedCartId?: string;\n        TransactionTypeValue?: number;\n        CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n        IncomeExpenseLines?: IncomeExpenseLine[];\n        IncomeExpenseTotalAmount?: number;\n        IsReturnByReceipt?: boolean;\n        ReturnTransactionHasLoyaltyPayment?: boolean;\n        IsFavorite?: boolean;\n        IsRecurring?: boolean;\n        IsSuspended?: boolean;\n        LoyaltyCardId?: string;\n        ModifiedDateTime?: Date;\n        Name?: string;\n        OrderNumber?: string;\n        AvailableDepositAmount?: number;\n        OverriddenDepositAmount?: number;\n        OverriddenDepositWithoutCarryoutAmount?: number;\n        PrepaymentAmountPaid?: number;\n        PrepaymentRoundingDifference?: number;\n        PrepaymentAppliedOnPickup?: number;\n        PrepaymentAmountInvoiced?: number;\n        PromotionLines?: string[];\n        QuotationExpiryDate?: Date;\n        ReasonCodeLines?: ReasonCodeLine[];\n        ReceiptEmail?: string;\n        RequestedDeliveryDate?: Date;\n        RequiredDepositAmount?: number;\n        RequiredDepositWithoutCarryoutAmount?: number;\n        SalesId?: string;\n        ShippingAddress?: Address;\n        StaffId?: string;\n        SubtotalAmount?: number;\n        SubtotalAmountWithoutTax?: number;\n        NetPrice?: number;\n        SubtotalSalesAmount?: number;\n        TaxAmount?: number;\n        TaxOnCancellationCharge?: number;\n        TaxOnShippingCharge?: number;\n        TaxOnNonShippingCharges?: number;\n        TaxOverrideCode?: string;\n        TenderLines?: TenderLine[];\n        RefundableTenderLines?: TenderLine[];\n        TerminalId?: string;\n        TotalAmount?: number;\n        TotalSalesAmount?: number;\n        TotalReturnAmount?: number;\n        TotalCarryoutSalesAmount?: number;\n        TotalCustomerOrderSalesAmount?: number;\n        TotalManualDiscountAmount?: number;\n        TotalManualDiscountPercentage?: number;\n        WarehouseId?: string;\n        IsCreatedOffline?: boolean;\n        CartStatusValue?: number;\n        ReceiptTransactionTypeValue?: number;\n        CommissionSalesGroup?: string;\n        Version?: number;\n        TotalItems?: number;\n        HasTaxCalculationTriggered?: boolean;\n        MerchantProperties?: PaymentMerchantInformation[];\n        HasChargeCalculationTriggered?: boolean;\n        FiscalTransactions?: FiscalTransaction[];\n        ShippingChargeAmount?: number;\n        OtherChargeAmount?: number;\n        PeriodicDiscountsCalculateScopeValue?: number;\n        TaxCalculationTypeValue?: number;\n        Notes?: Note[];\n        CustomerRequisition?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Customer entity interface.\n     */\n    export interface Customer {\n        AccountNumber: string;\n        RecordId?: number;\n        CreatedDateTime?: Date;\n        ChargeGroup?: string;\n        PriceGroup?: string;\n        IsCustomerTaxInclusive?: boolean;\n        Phone?: string;\n        PhoneRecordId?: number;\n        PhoneExt?: string;\n        Cellphone?: string;\n        Email?: string;\n        EmailRecordId?: number;\n        Url?: string;\n        UrlRecordId?: number;\n        Name?: string;\n        PersonNameId?: number;\n        FirstName?: string;\n        MiddleName?: string;\n        LastName?: string;\n        DirectoryPartyRecordId?: number;\n        PartyNumber?: string;\n        CustomerTypeValue?: number;\n        Language?: string;\n        CustomerGroup?: string;\n        CurrencyCode?: string;\n        CNPJCPFNumber?: string;\n        IdentificationNumber?: string;\n        InvoiceAccount?: string;\n        MandatoryCreditLimit?: boolean;\n        CreditRating?: string;\n        CreditLimit?: number;\n        Balance?: number;\n        Blocked?: boolean;\n        BlockedType?: number;\n        UseOrderNumberReference?: boolean;\n        OrganizationId?: string;\n        UsePurchaseRequest?: boolean;\n        MultilineDiscountGroup?: string;\n        TotalDiscountGroup?: string;\n        LineDiscountGroup?: string;\n        TaxGroup?: string;\n        SalesTaxGroup?: string;\n        CommissionSalesGroupId?: string;\n        TaxExemptNumber?: string;\n        VatNumber?: string;\n        TaxOffice?: string;\n        NonChargeableAccount?: boolean;\n        Tag?: string;\n        ReceiptSettings?: number;\n        ReceiptEmail?: string;\n        OptOutPersonalization?: boolean;\n        OptOutWebActivityTracking?: boolean;\n        RetailCustomerTableRecordId?: number;\n        OfflineImage?: string;\n        IsAsyncCustomer?: boolean;\n        NewCustomerPartyNumber?: string;\n        CustomerAffiliations?: CustomerAffiliation[];\n        Addresses?: Address[];\n        Attributes?: CustomerAttribute[];\n        Images?: MediaLocation[];\n        TitleRecordId?: number;\n        IsFloorLimitBlocked?: boolean;\n        IsB2b?: boolean;\n        IsB2bAdmin?: boolean;\n        BusinessPartnerId?: string;\n        Contacts?: ContactInfo[];\n        AllowOnAccountPayment?: boolean;\n        DefaultPaymentMethod?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Employee entity interface.\n     */\n    export interface Employee {\n        StaffId: string;\n        NameOnReceipt?: string;\n        Name?: string;\n        CultureName?: string;\n        NumberOfDaysToPasswordExpiry?: number;\n        Permissions?: EmployeePermissions;\n        Images?: MediaLocation[];\n        DefaultImage?: string;\n        DefaultCommissionSalesGroup?: string;\n        IdentifierTypeValue?: number;\n        RecordId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Checklist entity interface.\n     */\n    export interface Checklist {\n        RecordId: number;\n        Tasks?: ChecklistTask[];\n        Version?: string;\n        ProcessId?: string;\n        Name?: string;\n        Description?: string;\n        AssignedToChannelId?: number;\n        AssignedToWorkerPersonnelNumber?: string;\n        StatusValue?: number;\n        StartDateTime?: Date;\n        EndDateTime?: Date;\n        TargetDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SalesOrder entity interface.\n     */\n    export interface SalesOrder {\n        DocumentStatusValue?: number;\n        RecordId?: number;\n        StatusValue?: number;\n        McrOrderStopped?: boolean;\n        Shipments?: Shipment[];\n        AggregateInventoryQuantities?: InventoryQuantities;\n        UnifiedDeliveryInformation?: DeliveryInformation;\n        PaymentStatusValue?: number;\n        DetailedOrderStatusValue?: number;\n        AffiliationLoyaltyTierLines?: SalesAffiliationLoyaltyTier[];\n        IsRequiredAmountPaid?: boolean;\n        IsDiscountFullyCalculated?: boolean;\n        IgnoreDiscountCalculation?: boolean;\n        AmountDue?: number;\n        EstimatedShippingAmount?: number;\n        AmountPaid?: number;\n        CustomerOrderRemainingBalance?: number;\n        AttributeValues?: AttributeValueBase[];\n        AvailableDepositAmount?: number;\n        BeginDateTime?: Date;\n        CreatedDateTime?: Date;\n        BusinessDate?: Date;\n        CalculatedDepositAmount?: number;\n        CancellationCharge?: number;\n        ChannelId?: number;\n        ChannelReferenceId?: string;\n        ChargeAmount?: number;\n        ChargeLines?: ChargeLine[];\n        Comment?: string;\n        Coupons?: Coupon[];\n        InvoiceComment?: string;\n        ContactInformationCollection?: ContactInformation[];\n        CurrencyCode?: string;\n        CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n        CustomerId?: string;\n        CustomerOrderModeValue?: number;\n        CustomerOrderTypeValue?: number;\n        DeliveryMode?: string;\n        DeliveryModeChargeAmount?: number;\n        DiscountAmount?: number;\n        DiscountAmountWithoutTax?: number;\n        NetPrice?: number;\n        DiscountCodes?: string[];\n        EntryStatusValue?: number;\n        GrossAmount?: number;\n        HasLoyaltyPayment?: boolean;\n        Id: string;\n        InternalTransactionId?: string;\n        SuspendedTransactionId?: string;\n        IncomeExpenseLines?: IncomeExpenseLine[];\n        IncomeExpenseTotalAmount?: number;\n        InventoryLocationId?: string;\n        IsCreatedOffline?: boolean;\n        IsReturnByReceipt?: boolean;\n        IsSuspended?: boolean;\n        IsTaxIncludedInPrice?: boolean;\n        IsTaxExemptedForPriceInclusive?: boolean;\n        LineDiscount?: number;\n        LineDiscountCalculationTypeValue?: number;\n        LoyaltyCardId?: string;\n        LoyaltyDiscountAmount?: number;\n        LoyaltyManualDiscountAmount?: number;\n        LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n        ModifiedDateTime?: Date;\n        Name?: string;\n        NetAmount?: number;\n        NetAmountWithoutTax?: number;\n        NetAmountWithNoTax?: number;\n        NetAmountWithTax?: number;\n        NumberOfItems?: number;\n        OverriddenDepositAmount?: number;\n        OverriddenDepositWithoutCarryoutAmount?: number;\n        PeriodicDiscountAmount?: number;\n        TenderDiscountAmount?: number;\n        PrepaymentAmountAppliedOnPickup?: number;\n        PrepaymentAmountInvoiced?: number;\n        PrepaymentAmountPaid?: number;\n        PrepaymentRoundingDifference?: number;\n        QuotationExpiryDate?: Date;\n        ReasonCodeLines?: ReasonCodeLine[];\n        ReceiptEmail?: string;\n        ReceiptId?: string;\n        RequestedDeliveryDate?: Date;\n        ConfirmedShipDate?: Date;\n        RequiredDepositAmount?: number;\n        RequiredDepositWithoutCarryoutAmount?: number;\n        ReturnTransactionHasLoyaltyPayment?: boolean;\n        SalesId?: string;\n        SalesPaymentDifference?: number;\n        SalesLines?: SalesLine[];\n        ShiftId?: number;\n        ShiftTerminalId?: string;\n        ShippingAddress?: Address;\n        StaffId?: string;\n        StatementCode?: string;\n        StoreId?: string;\n        SubtotalAmount?: number;\n        SubtotalAmountWithoutTax?: number;\n        SubtotalSalesAmount?: number;\n        TaxAmount?: number;\n        TaxAmountExclusive?: number;\n        TaxAmountInclusive?: number;\n        TaxLines?: TaxLine[];\n        TaxOnCancellationCharge?: number;\n        TaxOnShippingCharge?: number;\n        TaxOnNonShippingCharges?: number;\n        TaxOverrideCode?: string;\n        TenderLines?: TenderLine[];\n        RefundableTenderLines?: TenderLine[];\n        TerminalId?: string;\n        TotalAmount?: number;\n        TotalSalesAmount?: number;\n        TotalReturnAmount?: number;\n        TotalCarryoutSalesAmount?: number;\n        TotalCustomerOrderSalesAmount?: number;\n        TotalDiscount?: number;\n        TotalManualDiscountAmount?: number;\n        TotalManualDiscountPercentage?: number;\n        TransactionTypeValue?: number;\n        TaxCalculationTypeValue?: number;\n        SalesInvoiceAmount?: number;\n        GiftCardActiveFrom?: Date;\n        GiftCardBalance?: number;\n        GiftCardExpireDate?: Date;\n        GiftCardHistoryDetails?: string;\n        GiftCardIssueAmount?: number;\n        GiftCardIdMasked?: string;\n        CommissionSalesGroup?: string;\n        IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n        CommissionSalesGroupSetByCashier?: string;\n        HasTaxCalculationTriggered?: boolean;\n        HasChargeCalculationTriggered?: boolean;\n        ShippingChargeAmount?: number;\n        OtherChargeAmount?: number;\n        PeriodicDiscountsCalculateScopeValue?: number;\n        CustomerName?: string;\n        OriginalOrderTransactionId?: string;\n        Notes?: Note[];\n        CustomerRequisition?: string;\n        FiscalTransactions?: FiscalTransaction[];\n        LanguageId?: string;\n        SalesAgreementRecordId?: number;\n        TransactionDate?: Date;\n        TransactionTime?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Shift entity interface.\n     */\n    export interface Shift {\n        ShiftId: number;\n        TerminalId: string;\n        StartingAmountTotal: number;\n        FloatingEntryAmountTotal: number;\n        AddToTenderAmountTotal: number;\n        SafeDropTotal: number;\n        BankDropTotal: number;\n        RemoveTenderAmountTotal: number;\n        DeclareTenderAmountTotal: number;\n        OverShortTotal: number;\n        TenderedTotal: number;\n        ChangeTotal: number;\n        IncomeAccountTotal: number;\n        ExpenseAccountTotal: number;\n        CashDrawer?: string;\n        StoreRecordId?: number;\n        StoreId?: string;\n        StaffId?: string;\n        CurrentStaffId?: string;\n        StatusValue?: number;\n        StartDateTime?: Date;\n        CloseDateTime?: Date;\n        ClosedAtTerminalId?: string;\n        ClosedAtShiftId?: number;\n        CurrentTerminalId?: string;\n        SalesTotal?: number;\n        StatusDateTime?: Date;\n        ReturnsTotal?: number;\n        PaidToAccountTotal?: number;\n        TaxTotal?: number;\n        ChargeTotal?: number;\n        DiscountTotal?: number;\n        RoundedAmountTotal?: number;\n        CustomerCount?: number;\n        SaleTransactionCount?: number;\n        NoSaleTransactionCount?: number;\n        VoidTransactionCount?: number;\n        LogOnTransactionCount?: number;\n        SuspendedTransactionCount?: number;\n        TransactionCount?: number;\n        ReceiptsCount?: number;\n        ReturnsCount?: number;\n        GoodsSoldQty?: number;\n        ServicesSoldQty?: number;\n        ReceiptCopiesCount?: number;\n        ReceiptCopiesTotal?: number;\n        PriceOverrideTotal?: number;\n        SuspendedTotal?: number;\n        SalesTotalIncludingTax?: number;\n        SalesTotalExcludingTax?: number;\n        SalesGrandTotal?: number;\n        ReturnsGrandTotal?: number;\n        TaxLines?: ShiftTaxLine[];\n        TenderLines?: ShiftTenderLine[];\n        AccountLines?: ShiftAccountLine[];\n        IsShared?: boolean;\n        StartingAmountRunningTotal?: number;\n        GiftCardsTotal?: number;\n        GiftCardCashOutTotal?: number;\n        VoidedSalesTotal?: number;\n        ShiftSalesTotal?: number;\n        ShiftReturnsTotal?: number;\n        HasPendingOfflineTransactions?: number;\n        NumberOfUnreconciledLines?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * StockCountJournal entity interface.\n     */\n    export interface StockCountJournal {\n        JournalId: string;\n        RecordId?: string;\n        Description?: string;\n        InventLocationId?: string;\n        DataAreaId?: string;\n        StockCountTransactionLines?: StockCountJournalTransaction[];\n        Worker?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OrgUnit entity interface.\n     */\n    export interface OrgUnit {\n        OrgUnitNumber: string;\n        RecordId: number;\n        InventoryLocationId?: string;\n        TaxGroup?: string;\n        FunctionalityProfileId?: string;\n        UseCustomerBasedTax?: boolean;\n        UseCustomerBasedTaxExemption?: boolean;\n        UseDestinationBasedTax?: boolean;\n        Currency?: string;\n        TimeZoneCode?: number;\n        OrgUnitAddress?: Address;\n        OrgUnitFullAddress?: string;\n        OrgUnitName?: string;\n        Latitude?: number;\n        Longitude?: number;\n        EmailReceiptProfileId?: string;\n        ShippingWarehouseAddress?: Address;\n        TaxRegistrations?: TaxRegistration[];\n        EventNotificationProfileId?: string;\n        OMOperatingUnitNumber?: string;\n        Name?: string;\n        DefaultCustomerAccount?: string;\n        CategoryHierarchyId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Product entity interface.\n     */\n    export interface Product {\n        RecordId: number;\n        ProductName?: string;\n        ProductNumber?: string;\n        Description?: string;\n        IsMasterProduct: boolean;\n        IsKit: boolean;\n        ItemId?: string;\n        HasLinkedProducts: boolean;\n        Rules: ProductRules;\n        DefaultUnitOfMeasure?: string;\n        Name?: string;\n        Locale?: string;\n        OfflineImage?: string;\n        IsRemote?: boolean;\n        ChangeTrackingInformation?: ProductChangeTrackingInformation;\n        Image?: RichMediaLocations;\n        UnitsOfMeasureSymbol?: string[];\n        LinkedProducts?: LinkedProduct[];\n        BasePrice?: number;\n        Price?: number;\n        AdjustedPrice?: number;\n        RetailContext?: ProjectionDomain;\n        PrimaryCategoryId?: number;\n        CategoryIds?: number[];\n        DisplayOrderInCategories?: DisplayOrderInCategory[];\n        RelatedProducts?: RelatedProduct[];\n        ProductsRelatedToThis?: RelatedProduct[];\n        ProductSchema?: string[];\n        ProductProperties?: ProductPropertyTranslation[];\n        CompositionInformation?: ProductCompositionInformation;\n        ParentKits?: KitComponent[];\n        SearchName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductCatalog entity interface.\n     */\n    export interface ProductCatalog {\n        RecordId: number;\n        Name?: string;\n        Description?: string;\n        Language?: string;\n        IsSnapshotEnabled: boolean;\n        ValidFrom: Date;\n        ValidTo: Date;\n        CreatedOn: Date;\n        ModifiedOn: Date;\n        PublishedOn: Date;\n        Images?: MediaLocation[];\n        ChannelId?: number;\n        DefaultImage?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CommerceList entity interface.\n     */\n    export interface CommerceList {\n        Id: number;\n        Name?: string;\n        CustomerId?: string;\n        CustomerName?: string;\n        IsFavorite?: boolean;\n        IsRecurring?: boolean;\n        IsPrivate?: boolean;\n        IsCollaborative?: boolean;\n        CreatedDateTime?: Date;\n        DueDateTime?: Date;\n        CommerceListTypeValue?: number;\n        CommerceListLines?: CommerceListLine[];\n        CommerceListContributors?: CommerceListContributor[];\n        CommerceListInvitations?: CommerceListInvitation[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductList entity interface.\n     */\n    export interface ProductList {\n        Id: string;\n        Name?: string;\n        CustomerId?: string;\n        CreatedDateTime?: Date;\n        LastUpdated?: Date;\n        DeletedDateTime?: Date;\n        ProductListTypeValue?: number;\n        DataAreaId?: string;\n        ChannelId?: number;\n        ProductListLines?: ProductListLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Recommendation entity interface.\n     */\n    export interface Recommendation {\n        Id: string;\n        RecommendationTypeValue?: number;\n        Title?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TransferOrder entity interface.\n     */\n    export interface TransferOrder {\n        OrderId: string;\n        RecordId?: string;\n        Status?: string;\n        Lines?: number;\n        TotalItems?: number;\n        OrderTypeValue?: number;\n        InventLocationIdFrom?: string;\n        InventLocationIdTo?: string;\n        QuantityShipped?: number;\n        QuantityReceived?: number;\n        QuantityShipNow?: number;\n        QuantityReceiveNow?: number;\n        QuantityShipRemaining?: number;\n        QuantityReceiveRemaining?: number;\n        ShipDate?: Date;\n        ReceiveDate?: Date;\n        DeliveryModeId?: string;\n        OrderLines?: TransferOrderLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PurchaseOrder entity interface.\n     */\n    export interface PurchaseOrder {\n        OrderId: string;\n        RecordId?: string;\n        Status?: string;\n        Lines?: number;\n        TotalItems?: number;\n        OrderTypeValue?: number;\n        TotalReceived?: number;\n        OrderLines?: PurchaseOrderLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PickingList entity interface.\n     */\n    export interface PickingList {\n        OrderId: string;\n        RecordId?: string;\n        Status?: string;\n        Lines?: number;\n        TotalItems?: number;\n        OrderTypeValue?: number;\n        InventLocationId?: string;\n        DeliveryDate?: Date;\n        DeliveryMode?: string;\n        TotalReceived?: number;\n        OrderLines?: PickingListLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Warehouse entity interface.\n     */\n    export interface Warehouse {\n        InventLocation: string;\n        Name?: string;\n        IsWMSEnabled: boolean;\n        DefaultInventoryStatus?: string;\n        DefaultReceiptLocation?: string;\n        DefaultLocationId?: string;\n        DefaultIssueLocation?: string;\n        Address?: Address;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ScanResult entity interface.\n     */\n    export interface ScanResult {\n        ScannedText: string;\n        MaskTypeValue?: number;\n        Barcode?: Barcode;\n        Product?: SimpleProduct;\n        LoyaltyCard?: LoyaltyCard;\n        GiftCard?: GiftCard;\n        ExtensionProperties?: CommerceProperty[];\n        Customer?: Customer;\n        }\n    \n    /**\n     * SalesOrderContextualOperationsMap entity interface.\n     */\n    export interface SalesOrderContextualOperationsMap {\n        Id: string;\n        ApplicableOperationsValues?: number[];\n        ExtensionProperties?: CommerceProperty[];\n        SalesOrder: SalesOrder;\n        }\n    \n    /**\n     * InventoryInboundOutboundDocument entity interface.\n     */\n    export interface InventoryInboundOutboundDocument {\n        WorkDocumentId: string;\n        TerminalId?: string;\n        CommitRequestId?: string;\n        ReceiveDate?: Date;\n        ShipDate?: Date;\n        Sender?: string;\n        Receiver?: string;\n        SenderDetails?: string;\n        ReceiverDetails?: string;\n        DeliveryMode?: string;\n        OperationTypeValue?: number;\n        StatusValue?: number;\n        ReceiptId?: string;\n        Note?: string;\n        OperationResultMessage?: string;\n        DocumentId?: string;\n        LongVersion?: number;\n        SourceDocument?: InventoryInboundOutboundSourceDocument;\n        SourceDocumentTypeValue?: number;\n        CreatedDateTime?: Date;\n        NoteModifiedByStaffId?: string;\n        NoteModifiedDateTime?: Date;\n        DocumentTypeId?: string;\n        Description?: string;\n        StaffId?: string;\n        TransactionDate?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * BusinessPartner entity interface.\n     */\n    export interface BusinessPartner {\n        BusinessPartnerId: string;\n        Name?: string;\n        SellerChannelId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * BusinessPartnerUser entity interface.\n     */\n    export interface BusinessPartnerUser {\n        B2BUserId: string;\n        BusinessPartnerId?: string;\n        FirstName?: string;\n        LastName?: string;\n        Email?: string;\n        SpendingLimit?: number;\n        LastOperationId?: string;\n        StatusValue?: number;\n        IsAdmin?: boolean;\n        AccountNumber?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SuspendedCart entity interface.\n     */\n    export interface SuspendedCart {\n        Id: string;\n        ReceiptId?: string;\n        ShiftId?: number;\n        ShiftTerminalId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        Cart?: Cart;\n        }\n    \n    /**\n     * ExtensibleEnumeration entity interface.\n     */\n    export interface ExtensibleEnumeration {\n        Name: string;\n        Value: number;\n        }\n    \n    /**\n     * ExtensibleEnumeration_1OfT entity interface.\n     */\n    export interface ExtensibleEnumeration_1OfT extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ExtensibleTransactionType entity interface.\n     */\n    export interface ExtensibleTransactionType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ExtensibleSalesTransactionType entity interface.\n     */\n    export interface ExtensibleSalesTransactionType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * FulfillmentLineStatus entity interface.\n     */\n    export interface FulfillmentLineStatus extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * FulfillmentLineDeliveryType entity interface.\n     */\n    export interface FulfillmentLineDeliveryType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ExtensibleAddressType entity interface.\n     */\n    export interface ExtensibleAddressType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ExtensibleLoyaltyRewardPointActivityEntryType entity interface.\n     */\n    export interface ExtensibleLoyaltyRewardPointActivityEntryType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ExtensibleAttributeDataType entity interface.\n     */\n    export interface ExtensibleAttributeDataType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ReleasedProductServiceType entity interface.\n     */\n    export interface ReleasedProductServiceType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ExtensibleElectronicAddressType entity interface.\n     */\n    export interface ExtensibleElectronicAddressType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ReceiptOutputFormatType entity interface.\n     */\n    export interface ReceiptOutputFormatType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * OrderLookupAdditionalCriteriaType entity interface.\n     */\n    export interface OrderLookupAdditionalCriteriaType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * Address entity interface.\n     */\n    export interface Address {\n        Name?: string;\n        Id?: string;\n        FullAddress?: string;\n        RecordId?: number;\n        Street?: string;\n        StreetNumber?: string;\n        County?: string;\n        CountyName?: string;\n        City?: string;\n        DistrictName?: string;\n        State?: string;\n        StateName?: string;\n        ZipCode?: string;\n        ThreeLetterISORegionName?: string;\n        Phone?: string;\n        PhoneRecordId?: number;\n        PhoneExt?: string;\n        Email?: string;\n        EmailContent?: string;\n        EmailRecordId?: number;\n        Url?: string;\n        UrlRecordId?: number;\n        TwoLetterISORegionName?: string;\n        Deactivate?: boolean;\n        AttentionTo?: string;\n        BuildingCompliment?: string;\n        Postbox?: string;\n        TaxGroup?: string;\n        AddressTypeValue?: number;\n        IsPrimary?: boolean;\n        IsPrivate?: boolean;\n        PartyNumber?: string;\n        IsAsyncAddress?: boolean;\n        DirectoryPartyTableRecordId?: number;\n        DirectoryPartyLocationRecordId?: number;\n        DirectoryPartyLocationRoleRecordId?: number;\n        LogisticsLocationId?: string;\n        LogisticsLocationRecordId?: number;\n        LogisticsLocationExtRecordId?: number;\n        LogisticsLocationRoleRecordId?: number;\n        PhoneLogisticsLocationRecordId?: number;\n        PhoneLogisticsLocationId?: string;\n        EmailLogisticsLocationRecordId?: number;\n        EmailLogisticsLocationId?: string;\n        UrlLogisticsLocationRecordId?: number;\n        UrlLogisticsLocationId?: string;\n        ExpireRecordId?: number;\n        SortOrder?: number;\n        RoleCount?: number;\n        DataAreaId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerAffiliation entity interface.\n     */\n    export interface CustomerAffiliation {\n        RecordId?: number;\n        RetailAffiliationId?: number;\n        Name?: string;\n        Description?: string;\n        HideInChannels?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerBalances entity interface.\n     */\n    export interface CustomerBalances {\n        Balance: number;\n        PendingBalance: number;\n        CreditLimit: number;\n        InvoiceAccountBalance: number;\n        InvoiceAccountPendingBalance: number;\n        InvoiceAccountCreditLimit: number;\n        OpenInvoiceBalance?: number;\n        OpenInvoiceCount?: number;\n        }\n    \n    /**\n     * GlobalCustomer entity interface.\n     */\n    export interface GlobalCustomer {\n        PartyNumber?: string;\n        RecordId?: number;\n        IsAsyncCustomer?: boolean;\n        AccountNumber?: string;\n        FullName?: string;\n        FullAddress?: string;\n        Phone?: string;\n        Email?: string;\n        CustomerTypeValue?: number;\n        Images?: MediaLocation[];\n        OfflineImage?: string;\n        IsB2b?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeValue entity interface.\n     */\n    export interface AttributeValue {\n        Name?: string;\n        KeyName?: string;\n        UnitOfMeasureSymbol?: string;\n        DataTypeValue?: number;\n        BooleanValue?: boolean;\n        DateTimeOffsetValue?: Date;\n        FloatValue?: number;\n        IntegerValue?: number;\n        TextValue?: string;\n        CurrencyValue?: number;\n        CurrencyCode?: string;\n        AttributeValueId?: number;\n        RecordId?: number;\n        Swatches?: AttributeSwatch[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeValueBase entity interface.\n     */\n    export interface AttributeValueBase {\n        Name?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Barcode entity interface.\n     */\n    export interface Barcode {\n        BarcodeId?: string;\n        BarcodePrice?: number;\n        Quantity?: number;\n        CustomerId?: string;\n        EmployeeId?: string;\n        SalespersonId?: string;\n        EANLicenseId?: string;\n        DataEntry?: string;\n        DiscountCode?: string;\n        GiftCardNumber?: string;\n        LoyaltyCardNumber?: string;\n        ItemBarcode?: ItemBarcode;\n        EntryMethodTypeValue?: number;\n        ItemType?: number;\n        EnterDimensions?: boolean;\n        ItemGroupId?: string;\n        ItemDepartmentId?: string;\n        ScaleItem?: boolean;\n        ZeroPriceValid?: boolean;\n        NegativeQuantity?: boolean;\n        DiscountNotAllowed?: boolean;\n        DateToBeBlocked?: Date;\n        DateToBeActivated?: Date;\n        CheckDigitValidated?: boolean;\n        CouponId?: string;\n        Message?: string;\n        LineDiscountGroup?: string;\n        MultilineDiscountGroup?: string;\n        IncludedInTotalDiscount?: boolean;\n        CostPrice?: number;\n        BatchId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ItemBarcode entity interface.\n     */\n    export interface ItemBarcode {\n        RecordId?: number;\n        ItemId?: string;\n        Description?: string;\n        BarcodeSetupId?: string;\n        ItemBarcodeValue?: string;\n        InventoryDimensionId?: string;\n        IsBlocked?: boolean;\n        Display?: boolean;\n        VariantId?: string;\n        UnitId?: string;\n        UseForInput?: boolean;\n        UseForPrinting?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ButtonGrid entity interface.\n     */\n    export interface ButtonGrid {\n        Id?: string;\n        Name?: string;\n        DefaultColor?: number;\n        SpaceBetweenButtonsInPixels?: number;\n        Buttons?: ButtonGridButton[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * GetButtonGridsByIdsCriteria entity interface.\n     */\n    export interface GetButtonGridsByIdsCriteria {\n        ButtonGridIds?: string[];\n        }\n    \n    /**\n     * CartLine entity interface.\n     */\n    export interface CartLine {\n        LineId?: string;\n        TaxOverrideCode?: string;\n        ItemId?: string;\n        Barcode?: string;\n        EntryMethodTypeValue?: number;\n        Description?: string;\n        InventoryDimensionId?: string;\n        Comment?: string;\n        ProductId?: number;\n        WarehouseId?: string;\n        Quantity?: number;\n        Price?: number;\n        ExtendedPrice?: number;\n        TaxAmount?: number;\n        SalesTaxGroupId?: string;\n        ItemTaxGroupId?: string;\n        TotalAmount?: number;\n        NetAmountWithoutTax?: number;\n        NetPrice?: number;\n        DiscountAmountWithoutTax?: number;\n        DiscountAmount?: number;\n        LineDiscount?: number;\n        LinePercentageDiscount?: number;\n        LineManualDiscountPercentage?: number;\n        LineManualDiscountAmount?: number;\n        UnitOfMeasureSymbol?: string;\n        ShippingAddress?: Address;\n        DeliveryMode?: string;\n        DeliveryModeChargeAmount?: number;\n        RequestedDeliveryDate?: Date;\n        PickupTimeslotStartDateTime?: Date;\n        PickupTimeslotEndDateTime?: Date;\n        IsWarrantyLine?: boolean;\n        WarrantableTransactionId?: string;\n        WarrantableSalesId?: string;\n        WarrantableLineNumber?: number;\n        WarrantableSerialNumber?: string;\n        WarrantiedId?: string;\n        ReturnTransactionId?: string;\n        ReturnLineNumber?: number;\n        ReturnInventTransId?: string;\n        ReturnStore?: string;\n        ReturnTerminalId?: string;\n        IsVoided?: boolean;\n        IsTaxOverideCodeTaxExempt?: boolean;\n        IsGiftCardLine?: boolean;\n        IsPriceKeyedIn?: boolean;\n        GiftCardId?: string;\n        GiftCardCurrencyCode?: string;\n        GiftCardOperationValue?: number;\n        GiftCardTypeValue?: number;\n        SalesStatusValue?: number;\n        QuantityOrdered?: number;\n        QuantityNotProcessed?: number;\n        QuantityReserved?: number;\n        QuantityPicked?: number;\n        QuantityPacked?: number;\n        QuantityInvoiced?: number;\n        QuantityCanceled?: number;\n        FulfillmentStoreId?: string;\n        SerialNumber?: string;\n        ElectronicDeliveryEmail?: string;\n        ElectronicDeliveryEmailContent?: string;\n        IsPriceOverridden?: boolean;\n        OriginalPrice?: number;\n        IsInvoiceLine?: boolean;\n        InvoiceId?: string;\n        InvoiceAmount?: number;\n        GiftCardBalance?: number;\n        LineVersion?: number;\n        PromotionLines?: string[];\n        PriceLines?: PriceLine[];\n        DiscountLines?: DiscountLine[];\n        RelatedDiscountedLineIds?: string[];\n        ReasonCodeLines?: ReasonCodeLine[];\n        ChargeLines?: ChargeLine[];\n        TaxLines?: TaxLine[];\n        ReturnTaxLines?: TaxLine[];\n        TaxRatePercent?: number;\n        IsCustomerAccountDeposit?: boolean;\n        LinkedParentLineId?: string;\n        QuantityReturnable?: number;\n        ExtensionProperties?: CommerceProperty[];\n        LineNumber?: number;\n        CommissionSalesGroup?: string;\n        TrackingId?: string;\n        StaffId?: string;\n        QuantityRemained?: number;\n        QuantityShipped?: number;\n        CatalogId?: number;\n        AttributeValues?: AttributeValueBase[];\n        ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n        BarcodeEmbeddedPrice?: number;\n        PriceInBarcode?: boolean;\n        InvoiceTypeValue?: number;\n        InvoicedSalesId?: string;\n        WarehouseLocation?: string;\n        DetailedLineStatusValue?: number;\n        SalesAgreementLineRecordId?: number;\n        }\n    \n    /**\n     * ThirdPartyGiftCardInfo entity interface.\n     */\n    export interface ThirdPartyGiftCardInfo {\n        Amount?: number;\n        Authorization?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CardTypeInfo entity interface.\n     */\n    export interface CardTypeInfo {\n        RecordId?: number;\n        TypeId?: string;\n        Name?: string;\n        PaymentMethodId?: string;\n        CardTypeValue?: number;\n        Issuer?: string;\n        NumberFrom?: string;\n        NumberTo?: string;\n        CashBackLimit?: number;\n        AllowManualInput?: boolean;\n        CheckModulus?: boolean;\n        HasTenderDiscount?: boolean;\n        IsPinRequired?: boolean;\n        IsExpirationDateRequired?: boolean;\n        ConnectorName?: string;\n        PaymentProcessorMethod?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CashDeclaration entity interface.\n     */\n    export interface CashDeclaration {\n        RecordId?: number;\n        Currency?: string;\n        Amount?: number;\n        CashTypeValue?: number;\n        IncludeInQuickPayShortcuts?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * IncomeExpenseAccount entity interface.\n     */\n    export interface IncomeExpenseAccount {\n        Amount?: number;\n        AccountNumber?: string;\n        AccountName?: string;\n        AccountNameAlias?: string;\n        AccountTypeValue?: number;\n        Quantity?: number;\n        Message1Line?: string;\n        Message2Line?: string;\n        SlipText1Line?: string;\n        SlipText2Line?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * IncomeExpenseLine entity interface.\n     */\n    export interface IncomeExpenseLine {\n        Amount?: number;\n        IncomeExpenseAccount?: string;\n        StoreNumber?: string;\n        AccountTypeValue?: number;\n        Terminal?: string;\n        Shift?: string;\n        TransactionStatusValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CartTenderLine entity interface.\n     */\n    export interface CartTenderLine {\n        PaymentCard?: PaymentCard;\n        TokenizedPaymentCard?: TokenizedPaymentCard;\n        CardPaymentAcceptResult?: CardPaymentAcceptResult;\n        IsLinkedRefund?: boolean;\n        LinkedPaymentStore?: string;\n        LinkedPaymentTerminalId?: string;\n        LinkedPaymentTransactionId?: string;\n        LinkedPaymentLineNumber?: number;\n        LinkedPaymentCurrency?: string;\n        TenderLineId?: string;\n        Amount?: number;\n        CashBackAmount?: number;\n        AmountInTenderedCurrency?: number;\n        AmountInCompanyCurrency?: number;\n        Currency?: string;\n        ExchangeRate?: number;\n        CompanyCurrencyExchangeRate?: number;\n        TenderTypeId?: string;\n        SignatureData?: string;\n        ReasonCodeLines?: ReasonCodeLine[];\n        LineNumber?: number;\n        GiftCardId?: string;\n        GiftCardPin?: string;\n        GiftCardExpirationYear?: number;\n        GiftCardExpirationMonth?: number;\n        CreditMemoId?: string;\n        CustomerId?: string;\n        LoyaltyCardId?: string;\n        CardTypeId?: string;\n        IsChangeLine?: boolean;\n        IsHistorical?: boolean;\n        IsVoidable?: boolean;\n        StatusValue?: number;\n        VoidStatusValue?: number;\n        AuthorizedAmount?: number;\n        PaymentRefRecId?: number;\n        CardPaymentAccountId?: string;\n        ProcessingTypeValue?: number;\n        CardProcessorStatusValue?: number;\n        LinkedPaymentRefRecId?: number;\n        IsPolicyBypassed?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChargeLine entity interface.\n     */\n    export interface ChargeLine {\n        ChargeLineId?: string;\n        ChargeCode?: string;\n        CurrencyCode?: string;\n        ModuleTypeValue?: number;\n        IsHeaderChargeProrated?: boolean;\n        ChargeTypeValue?: number;\n        ChargeMethodValue?: number;\n        CalculatedAmount?: number;\n        Value?: number;\n        Description?: string;\n        TransactionId?: string;\n        MarkupAutoLineRecordId?: number;\n        MarkupAutoTableRecId?: number;\n        SaleLineNumber?: number;\n        FromAmount?: number;\n        ToAmount?: number;\n        Keep?: number;\n        AmountRefunded?: number;\n        ChargeLineOverrides?: ChargeLineOverride[];\n        ReasonCodeLines?: ReasonCodeLine[];\n        IsRefundable?: boolean;\n        IsShipping?: boolean;\n        IsOverridden?: boolean;\n        IsInvoiced?: boolean;\n        CalculatedProratedAmount?: number;\n        SpecificUnitSymbol?: string;\n        ItemId?: string;\n        Quantity?: number;\n        Price?: number;\n        ItemTaxGroupId?: string;\n        SalesTaxGroupId?: string;\n        OriginalSalesTaxGroupId?: string;\n        OriginalItemTaxGroupId?: string;\n        TaxAmount?: number;\n        SalesOrderUnitOfMeasure?: string;\n        NetAmount?: number;\n        NetAmountPerUnit?: number;\n        GrossAmount?: number;\n        TaxLines?: TaxLine[];\n        TaxMeasures?: TaxMeasure[];\n        TaxAmountExemptInclusive?: number;\n        TaxAmountInclusive?: number;\n        TaxAmountExclusive?: number;\n        NetAmountWithAllInclusiveTax?: number;\n        BeginDateTime?: Date;\n        EndDateTime?: Date;\n        TaxRatePercent?: number;\n        IsReturnByReceipt?: boolean;\n        ReturnLineTaxAmount?: number;\n        ReturnTaxLines?: TaxLine[];\n        TaxExemptPriceInclusiveReductionAmount?: number;\n        TaxExemptPriceInclusiveOriginalPrice?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CityInfo entity interface.\n     */\n    export interface CityInfo {\n        Name?: string;\n        Description?: string;\n        CountryRegionId?: string;\n        StateId?: string;\n        CountyId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CommissionSalesGroup entity interface.\n     */\n    export interface CommissionSalesGroup {\n        GroupId?: string;\n        Name?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ContactInformation entity interface.\n     */\n    export interface ContactInformation {\n        Value?: string;\n        ContactInformationTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeCategory entity interface.\n     */\n    export interface AttributeCategory {\n        Value?: CommercePropertyValue;\n        RecordId?: number;\n        Name?: string;\n        KeyName?: string;\n        DataTypeValue?: number;\n        Attribute?: number;\n        NameTranslations?: TextValueTranslation[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeProduct entity interface.\n     */\n    export interface AttributeProduct {\n        MetadataFlags?: ProductAttributeMetadataFlags;\n        IsDimension?: boolean;\n        RecordId?: number;\n        Name?: string;\n        KeyName?: string;\n        DataTypeValue?: number;\n        Attribute?: number;\n        NameTranslations?: TextValueTranslation[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductComparisonEntry entity interface.\n     */\n    export interface ProductComparisonEntry {\n        ProductId: number;\n        AttributeValue?: AttributeValue;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductComparisonLine entity interface.\n     */\n    export interface ProductComparisonLine {\n        AttributeRecordId: number;\n        AttributeName?: string;\n        ProductAttributeComparisonEntries?: ProductComparisonEntry[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerSearchField entity interface.\n     */\n    export interface CustomerSearchField {\n        IsShortcut?: boolean;\n        DisplayName?: string;\n        CanBeRefined?: boolean;\n        SearchField?: CustomerSearchFieldType;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerSearchByFieldCriteria entity interface.\n     */\n    export interface CustomerSearchByFieldCriteria {\n        Criteria?: CustomerSearchByFieldCriterion[];\n        DataLevelValue?: number;\n        }\n    \n    /**\n     * CustomerSearchByFieldCriterion entity interface.\n     */\n    export interface CustomerSearchByFieldCriterion {\n        SearchTerm?: string;\n        SearchField?: CustomerSearchFieldType;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerSearchFieldType entity interface.\n     */\n    export interface CustomerSearchFieldType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * OrderShipments entity interface.\n     */\n    export interface OrderShipments {\n        SalesId?: string;\n        ChannelId?: number;\n        ChannelReferenceId?: string;\n        TransactionId?: string;\n        CreatedDateTime?: Date;\n        StatusValue?: number;\n        CurrencyCode?: string;\n        CustomerId?: string;\n        DeliveryMode?: string;\n        GrossAmount?: number;\n        ExtensionProperties?: CommerceProperty[];\n        InventoryLocationId?: string;\n        ReceiptId?: string;\n        RequestedDeliveryDate?: Date;\n        TotalAmount?: number;\n        TaxAmount?: number;\n        SalesLines?: SalesLine[];\n        Shipments?: Shipment[];\n        }\n    \n    /**\n     * Shipment entity interface.\n     */\n    export interface Shipment {\n        SalesId?: string;\n        ShipmentId?: string;\n        DeliveryAddress?: Address;\n        ShipDate?: Date;\n        DeliveryMode?: string;\n        TermsOfDelivery?: string;\n        WeightUnit?: string;\n        TrackingNumber?: string;\n        TrackingUrl?: string;\n        LatestCarrierTrackingInfo?: TrackingInfo;\n        CarrierId?: string;\n        CarrierName?: string;\n        ShippingWeight?: number;\n        ShipmentLines?: ShipmentLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ShipmentLine entity interface.\n     */\n    export interface ShipmentLine {\n        ShipmentLineId?: string;\n        ItemId?: string;\n        Description?: string;\n        InventDimId?: string;\n        OrderedQuantity?: number;\n        DeliveredQuantity?: number;\n        RemainingQuantity?: number;\n        InventoryTransactionId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Transaction entity interface.\n     */\n    export interface Transaction {\n        Id?: string;\n        StoreId?: string;\n        TerminalId?: string;\n        IsCreatedOffline?: boolean;\n        StaffId?: string;\n        LanguageId?: string;\n        ShiftId?: string;\n        ShiftTerminalId?: string;\n        Description?: string;\n        ReceiptId?: string;\n        GrossAmount?: number;\n        TotalAmount?: number;\n        CreatedDateTime?: Date;\n        TransactionTypeValue?: number;\n        TransactionStatusValue?: number;\n        BeginDateTime?: Date;\n        GiftCardActiveFrom?: Date;\n        GiftCardBalance?: number;\n        GiftCardExpireDate?: Date;\n        GiftCardHistoryDetails?: string;\n        GiftCardIssueAmount?: number;\n        GiftCardIdMasked?: string;\n        FromSafe?: string;\n        ToSafe?: string;\n        FromShiftTerminalId?: string;\n        ToShiftTerminalId?: string;\n        FromShiftId?: string;\n        TransactionSourceContextTypeValue?: number;\n        TransactionDestinationContextTypeValue?: number;\n        ToShiftId?: string;\n        TransactionDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ShiftReconciliationLine entity interface.\n     */\n    export interface ShiftReconciliationLine extends Transaction {\n        GroupId?: number;\n        GroupDescription?: string;\n        ShiftGroupLinesCount?: number;\n        ShiftGroupLinesClosedCount?: number;\n        AmountInOriginalCurrency?: number;\n        TransactionCurrencyCode?: string;\n        TenderType?: string;\n        }\n    \n    /**\n     * ShiftReconciliationLineRetrievalCriteria entity interface.\n     */\n    export interface ShiftReconciliationLineRetrievalCriteria {\n        TransactionTypeValues?: number[];\n        ShiftReconciliationLineStatusValue?: number;\n        Shifts?: ShiftKey[];\n        DestinationShift?: ShiftKey;\n        SourceShift?: ShiftKey;\n        SourceSafe?: string;\n        DestinationSafe?: string;\n        TransactionSourceContextTypeValue?: number;\n        TransactionDestinationContextTypeValue?: number;\n        }\n    \n    /**\n     * SearchConfiguration entity interface.\n     */\n    export interface SearchConfiguration {\n        ProductSortColumns?: SortColumn[];\n        ProductSearchServiceTypeValue?: number;\n        ProductSortColumnsLabels?: LocalizedText[];\n        }\n    \n    /**\n     * CustomerTimelineItem entity interface.\n     */\n    export interface CustomerTimelineItem {\n        CustomerId?: string;\n        Description?: string;\n        Id?: string;\n        EntityType?: string;\n        TypeId?: string;\n        StaffId?: string;\n        StartDateTime?: Date;\n        Title?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeDefinition entity interface.\n     */\n    export interface AttributeDefinition {\n        RecordId: number;\n        Name?: string;\n        AttributeTypeName?: string;\n        ExtDataType?: ExtensibleAttributeDataType;\n        DataTypeValue?: number;\n        IsHidden?: boolean;\n        IsMandatory?: boolean;\n        IsMultiValue?: boolean;\n        IsEnumeration?: boolean;\n        TranslationDetails?: AttributeTranslationDetails[];\n        EnumerationDetails?: AttributeEnumeration[];\n        DefaultValue?: CommercePropertyValue;\n        UpperBound?: CommercePropertyValue;\n        LowerBound?: CommercePropertyValue;\n        DisplayOrder?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeTranslationDetails entity interface.\n     */\n    export interface AttributeTranslationDetails {\n        AttributeRecordId: number;\n        LanguageId?: string;\n        FriendlyName?: string;\n        Description?: string;\n        HelpText?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeEnumeration entity interface.\n     */\n    export interface AttributeEnumeration {\n        OrdinalNumber?: number;\n        EnumerationValue?: string;\n        AttributeEnumerationTranslations?: AttributeEnumerationTranslation[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeEnumerationTranslation entity interface.\n     */\n    export interface AttributeEnumerationTranslation {\n        LanguageId?: string;\n        EnumerationTranslationValue?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeDefinitionCriteria entity interface.\n     */\n    export interface AttributeDefinitionCriteria {\n        AttributeGroupIdentifier?: number;\n        Languages?: string[];\n        }\n    \n    /**\n     * AttributeGroupDefinition entity interface.\n     */\n    export interface AttributeGroupDefinition {\n        RecordId: number;\n        Name?: string;\n        TranslationDetails?: AttributeGroupTranslationDetails[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeGroupTranslationDetails entity interface.\n     */\n    export interface AttributeGroupTranslationDetails {\n        AttributeGroupRecordId: number;\n        LanguageId?: string;\n        FriendlyName?: string;\n        Description?: string;\n        HelpText?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeGroupDefinitionCriteria entity interface.\n     */\n    export interface AttributeGroupDefinitionCriteria {\n        AttributeGroupIdentifiers?: number[];\n        Languages?: string[];\n        }\n    \n    /**\n     * CountyInfo entity interface.\n     */\n    export interface CountyInfo {\n        Name?: string;\n        CountyId?: string;\n        CountryRegionId?: string;\n        StateId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerGroup entity interface.\n     */\n    export interface CustomerGroup {\n        CustomerGroupNumber?: string;\n        CustomerGroupName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DiscountLine entity interface.\n     */\n    export interface DiscountLine {\n        SaleLineNumber?: number;\n        OfferId?: string;\n        OfferName?: string;\n        OfferDescription?: string;\n        Amount?: number;\n        DiscountCost?: number;\n        EffectiveAmount?: number;\n        EffectivePercentage?: number;\n        LineNumber?: number;\n        RecordId?: number;\n        SavedEffectiveAmount?: number;\n        Percentage?: number;\n        DealPrice?: number;\n        DiscountLineTypeValue?: number;\n        ManualDiscountTypeValue?: number;\n        CustomerDiscountTypeValue?: number;\n        PeriodicDiscountTypeValue?: number;\n        DiscountApplicationGroup?: string;\n        ConcurrencyModeValue?: number;\n        IsCompoundable?: boolean;\n        DiscountCode?: string;\n        PricingPriorityNumber?: number;\n        PricingAttributeCombinationPriority?: number;\n        IsDiscountCodeRequired?: boolean;\n        ThresholdAmountRequired?: number;\n        BundleId?: number;\n        ValidFrom?: Date;\n        ValidTo?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * EmployeePermissions entity interface.\n     */\n    export interface EmployeePermissions {\n        PriceOverrideRestrictionValue?: number;\n        AllowPriceOverride?: number;\n        MaximumDiscountPercentage?: number;\n        MaximumLineDiscountAmount?: number;\n        MaximumLineReturnAmount?: number;\n        MaximumTotalDiscountAmount?: number;\n        MaximumTotalDiscountPercentage?: number;\n        MaxTotalReturnAmount?: number;\n        StaffId?: string;\n        Roles?: string[];\n        AllowUseSharedShift?: boolean;\n        AllowManageSharedShift?: boolean;\n        AllowTaskGuides?: boolean;\n        AllowSaleOutsideAssortment?: boolean;\n        AllowPrintingReceiptCopy?: string;\n        AllowSkipFiscalRegistration?: boolean;\n        AllowSkipRegistrationOrMarkAsRegistered?: boolean;\n        AllowPostponeRegistration?: boolean;\n        AllowCreateTransferOrder?: boolean;\n        AllowAcceptOrder?: boolean;\n        AllowTaskManagement?: boolean;\n        AllowRejectOrder?: boolean;\n        AllowMassActivation?: boolean;\n        AllowPostInventoryAdjustment?: boolean;\n        AllowPostStockCounting?: boolean;\n        AllowCreatePurchaseOrder?: boolean;\n        AllowConfirmPurchaseOrder?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CommerceProperty entity interface.\n     */\n    export interface CommerceProperty {\n        Key?: string;\n        Value?: CommercePropertyValue;\n        }\n    \n    /**\n     * CommercePropertyValue entity interface.\n     */\n    export interface CommercePropertyValue {\n        BooleanValue?: boolean;\n        ByteValue?: number;\n        DateTimeOffsetValue?: Date;\n        DecimalValue?: number;\n        IntegerValue?: number;\n        LongValue?: number;\n        StringValue?: string;\n        }\n    \n    /**\n     * CountryRegionInfo entity interface.\n     */\n    export interface CountryRegionInfo {\n        CountryRegionId?: string;\n        ShortName?: string;\n        LongName?: string;\n        ISOCode?: string;\n        TimeZone?: number;\n        LanguageId?: string;\n        AddressFormatLines?: AddressFormattingInfo[];\n        AddressFormatId?: string;\n        AddressFormatName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CreditMemo entity interface.\n     */\n    export interface CreditMemo {\n        Id?: string;\n        Balance?: number;\n        CurrencyCode?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Currency entity interface.\n     */\n    export interface Currency {\n        CurrencyCode?: string;\n        CurrencySymbol?: string;\n        RoundOffPrice?: number;\n        RoundOffSales?: number;\n        RoundOffTypePrice?: number;\n        RoundOffTypeSales?: number;\n        NumberOfDecimals?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CurrencyAmount entity interface.\n     */\n    export interface CurrencyAmount {\n        CurrencyCode?: string;\n        CurrencySymbol?: string;\n        ConvertedAmount?: number;\n        RoundedConvertedAmount?: number;\n        ExchangeRate?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ScaleUnitConfiguration entity interface.\n     */\n    export interface ScaleUnitConfiguration {\n        Id?: string;\n        Name?: string;\n        Region?: string;\n        }\n    \n    /**\n     * EnvironmentConfiguration entity interface.\n     */\n    export interface EnvironmentConfiguration {\n        EnvironmentId?: string;\n        EnvironmentName?: string;\n        TenantId?: string;\n        ClientAppInsightsInstrumentationKey?: string;\n        HardwareStationAppInsightsInstrumentationKey?: string;\n        WindowsPhonePosAppInsightsInstrumentationKey?: string;\n        BaseVersion?: string;\n        ScaleUnit?: ScaleUnitConfiguration;\n        AADAuthority?: string;\n        FrameworkName?: string;\n        }\n    \n    /**\n     * OrderManagementConfiguration entity interface.\n     */\n    export interface OrderManagementConfiguration {\n        EnableContactEditPromptForAsyncOrderCancellation?: boolean;\n        SkipSalesInvoiceSelectionDuringReturn?: boolean;\n        OrderAttributeForTIN?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DeviceConfiguration entity interface.\n     */\n    export interface DeviceConfiguration {\n        UseInMemoryDeviceDataStorage?: boolean;\n        AllowItemsAggregation?: boolean;\n        AggregateItemsForPrinting?: boolean;\n        AggregatePayments?: boolean;\n        AlwaysExpandTransactionScreenLineDetails?: boolean;\n        AuditEnabled?: boolean;\n        DiscountAtTotal?: string;\n        ProductDiscount?: string;\n        ManuallyCalculateComplexDiscounts?: boolean;\n        DisplaySecondaryTotalCurrency?: boolean;\n        EndOfTransaction?: string;\n        ItemNotOnFile?: string;\n        LimitStaffListToStore?: boolean;\n        LineItemTaxChange?: string;\n        MarkUp?: string;\n        MaximumPrice?: number;\n        MaximumQuantity?: number;\n        MinimumPasswordLength?: number;\n        MustKeyInPriceIfZero?: boolean;\n        NfcEContingencyModeEnabled?: string;\n        NfcEVoided?: string;\n        FunctionalityProfileDescription?: string;\n        OverridePrice?: string;\n        PrintVoidTransactionReceipts?: boolean;\n        PrintReceiptsOnCardDecline?: boolean;\n        PrintXZReportsOnTerminal?: boolean;\n        PrintTenderDetailsOnXReport?: boolean;\n        ProfileId?: string;\n        RefundSale?: string;\n        ReturnProduct?: string;\n        SalesPerson?: string;\n        SecondaryTotalCurrency?: string;\n        SelectHardwareStationOnTendering?: boolean;\n        SelectHardwareStationAtStartOfTransaction?: boolean;\n        SerialNumber?: string;\n        ShowStaffListAtLogOn?: boolean;\n        StaffBarcodeLogOn?: boolean;\n        StaffBarcodeLogOnRequiresPassword?: boolean;\n        StaffCardLogOn?: boolean;\n        StaffCardLogOnRequiresPassword?: boolean;\n        StartOfTransaction?: string;\n        EnableTimeRegistration?: boolean;\n        TenderDeclaration?: string;\n        TransactionTaxChange?: string;\n        VoidItem?: string;\n        VoidPayment?: string;\n        SalesModeDefaultsAsCustomerOrder?: boolean;\n        CreateOfflineCustomerOrders?: boolean;\n        CreateAsyncCustomers?: boolean;\n        EnableAxCustomerSearch?: boolean;\n        VoidTransaction?: string;\n        CultureName?: string;\n        SystemLegalTermsUrl?: string;\n        SystemPrivacyStatementUrl?: string;\n        HideTrainingMode?: boolean;\n        StorePhone?: string;\n        StatementMethod?: string;\n        StoreNumber?: string;\n        ChannelId?: number;\n        StoreTaxGroup?: string;\n        TaxIdNumber?: string;\n        TaxOverrideGroup?: number;\n        TenderDeclarationCalculation?: number;\n        UseCustomerBasedTax?: boolean;\n        UseDestinationBasedTax?: boolean;\n        AutoLogOffTimeoutInMinutes?: number;\n        AutoExitMethodValue?: number;\n        CustomerDisplayText1?: string;\n        CustomerDisplayText2?: string;\n        EFTStoreId?: number;\n        EFTTerminalId?: string;\n        ExitAfterEachTransaction?: boolean;\n        HardwareProfile?: string;\n        Placement?: string;\n        TerminalDescription?: string;\n        OpenDrawer?: string;\n        OpenDrawerAtLogOnLogOff?: boolean;\n        PrintTaxRefundChecks?: boolean;\n        StandAlone?: boolean;\n        TerminalId?: string;\n        TerminalStatement?: boolean;\n        VisualProfile?: string;\n        Currency?: string;\n        InventLocationId?: string;\n        IncludeKitComponents?: boolean;\n        AccentColor?: number;\n        HeaderColor?: number;\n        Theme?: string;\n        FontScheme?: number;\n        ShowAppBarLabel?: boolean;\n        LogOnBackgroundPictureAsBase64?: string;\n        LogOnBackgroundPicturePortraitAsBase64?: string;\n        BackgroundPictureAsBase64?: string;\n        LogonBackgroundPictureId?: number;\n        LogonBackgroundPictureIdCompact?: number;\n        LogonBackgroundPictureIdPortrait?: number;\n        LogonBackgroundPictureIdCompactPortrait?: number;\n        BackgroundPictureId?: number;\n        RequireAmountDeclaration?: boolean;\n        DecimalNotRequiredForMinorCurrencyUnit?: boolean;\n        MaxTransactionSearchResults?: number;\n        OfflineProfileId?: number;\n        NewOfflineDatabaseCheckInterval?: number;\n        OfflineTransactionUploadInterval?: number;\n        ReconnectToOnlineInterval?: number;\n        SwitchToOfflineTimeout?: number;\n        OfflineSwitchApiPerformanceThresholdInSeconds?: number;\n        ReconnectFromPerformanceInducedOfflineIntervalInSeconds?: number;\n        RetentionDays?: number;\n        HardwareConfigurations?: HardwareConfigurations;\n        CreateRecording?: boolean;\n        PlaybackRecording?: boolean;\n        ShouldUseDefaultCommisionSalesGroup?: boolean;\n        AskForSalesRepresentative?: number;\n        IsSalesRepRequired?: boolean;\n        ProhibitMixingSalesAndReturns?: boolean;\n        ApplyDiscountsToPriceKeyedIn?: boolean;\n        ApplyDiscountsToPriceOverrides?: boolean;\n        IsProductSuggestionsEnabled?: boolean;\n        ProductSearchType?: string;\n        TerminalRecId?: number;\n        DeviceRecId?: number;\n        DenominationsToDisplayValue?: number;\n        PromptOnSeamlessOffline?: boolean;\n        RetryCountToOffline?: number;\n        EnableAdvancedOfflineSwitching?: boolean;\n        SystemHealthCheckInterval?: number;\n        RejectOrderFulfillment?: string;\n        ManuallyCalculateTaxes?: boolean;\n        EmployeeLogonTypeValue?: number;\n        StartAmountCalculation?: number;\n        BankDropCalculation?: number;\n        GenerateLoyaltyCardNumber?: boolean;\n        FiscalRegistrationProcessId?: string;\n        IncludeSalesOrderInvoices?: boolean;\n        IncludeFreeTextInvoices?: boolean;\n        IncludeProjectInvoices?: boolean;\n        IncludeCreditNoteInvoices?: boolean;\n        DisplayTaxExemptInLineDetails?: boolean;\n        TaxExemptReceiptIndicator?: string;\n        ManuallyCalculateCharges?: boolean;\n        ChargeOverrideReasonCode?: string;\n        ShiftReconcilation?: string;\n        CustomerAccountFloorLimit?: number;\n        VoidSuspendedTransactionsOnCloseShift?: boolean;\n        ShowDateTime?: boolean;\n        UseAdvancedCashManagement?: boolean;\n        DefaultCustomerSearchModeValue?: number;\n        AllowManualOfflineBeforeSignIn?: boolean;\n        UseFinancialReconciliationInStore?: boolean;\n        RequirePaymentForFulfillmentValue?: number;\n        CardNotPresentProcessingConfigurationValue?: number;\n        EnableQuickPayShortcuts?: boolean;\n        ChangeDueBehaviorValue?: number;\n        AutoSynchronizeDeviceNumberSequences?: boolean;\n        SelfCheckout?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * VisualProfile entity interface.\n     */\n    export interface VisualProfile {\n        ChannelId?: number;\n        TerminalId?: string;\n        AccentColor?: number;\n        HeaderColor?: number;\n        Theme?: string;\n        FontSchemeTypeValue?: number;\n        IsAppBarLabelVisible?: boolean;\n        IsDateTimeVisible?: boolean;\n        LogOnLayoutTypeValue?: number;\n        LogOnKeyboardTypeValue?: number;\n        LogonBackgroundPictureId?: number;\n        CompactLogonBackgroundPictureId?: number;\n        PortraitLogonBackgroundPictureId?: number;\n        CompactPortraitLogonBackgroundPictureId?: number;\n        BackgroundPictureId?: number;\n        LogOnLogoPictureId?: number;\n        IsProductIdVisibleOnCartLine?: boolean;\n        DefaultSearchResultDisplayViewTypeValue?: number;\n        BypassItemAddedDialog?: boolean;\n        IsModernTransactionGridEnabled?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OperationalInsightsConfiguration entity interface.\n     */\n    export interface OperationalInsightsConfiguration {\n        InstrumentationKey?: string;\n        EnvironmentId?: string;\n        IsEnabled?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PaymentConfiguration entity interface.\n     */\n    export interface PaymentConfiguration {\n        AlwaysStoreCardTokenOnOrderBalanceAuthorization?: boolean;\n        MinOrderProcessingDaysForStoringCardToken?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Device entity interface.\n     */\n    export interface Device {\n        ChannelId: number;\n        RecordId?: number;\n        DeviceNumber?: string;\n        DeviceId?: string;\n        Description?: string;\n        DeviceType?: number;\n        TerminalRecordId?: number;\n        TerminalId?: string;\n        ChannelName?: string;\n        UseInMemoryDeviceDataStorage?: boolean;\n        AllowMassActivation?: boolean;\n        TokenIssueTime?: Date;\n        ActivationStatusValue?: number;\n        Token?: string;\n        CountryRegionIsoCode?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DiscountCode entity interface.\n     */\n    export interface DiscountCode {\n        RecordId: number;\n        Barcode?: string;\n        Code?: string;\n        ConcurrencyMode?: number;\n        Description?: string;\n        Disclaimer?: string;\n        IsDiscountCodeRequired?: boolean;\n        Name?: string;\n        OfferId?: string;\n        IsEnabled?: boolean;\n        ValidFrom?: Date;\n        ValidTo?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DistrictInfo entity interface.\n     */\n    export interface DistrictInfo {\n        Name?: string;\n        Description?: string;\n        CountryRegionId?: string;\n        StateId?: string;\n        CountyId?: string;\n        CityName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * HardwareProfile entity interface.\n     */\n    export interface HardwareProfile {\n        RecordId?: number;\n        LineDisplayDelayForLinkedItems?: number;\n        LineDisplayBalanceText?: string;\n        LineDisplayBinaryConversion?: boolean;\n        LineDisplayCharacterSet?: number;\n        LineDisplayClosedLine1?: string;\n        LineDisplayClosedLine2?: string;\n        LineDisplayDeviceDescription?: string;\n        LineDisplayDeviceTypeValue?: number;\n        LineDisplayDeviceName?: string;\n        LineDisplayDisplayLinkedItem?: boolean;\n        LineDisplayDisplayTerminalClosed?: boolean;\n        LineDisplayTotalText?: string;\n        LineDisplayKeepConnectionOpen?: boolean;\n        DualDisplayActive?: boolean;\n        DualDisplayWebBrowserUrl?: string;\n        DualDisplayImageRotatorInterval?: number;\n        DualDisplayImageRotatorPath?: string;\n        DualDisplayReceiptWidthPercentage?: number;\n        DualDisplayDisplayType?: string;\n        EftTypeId?: number;\n        EftCompanyId?: string;\n        EftConfiguration?: number;\n        EftPaymentConnectorName?: string;\n        EftData?: string;\n        EftDescription?: string;\n        EftMerchantId?: string;\n        EftPassword?: string;\n        EftServerName?: string;\n        EftServerPort?: string;\n        EftUserId?: string;\n        EftTestMode?: boolean;\n        MsrEndTrack1?: string;\n        MsrEndTrack2?: string;\n        FiscalPrinterManagementReportPAFIdentification?: string;\n        FiscalPrinterManagementReportConfigParameter?: string;\n        FiscalPrinterManagementReportTenderType?: string;\n        FiscalPrinterManagementReportGiftCard?: string;\n        FiscalRegisterDeviceTypeValue?: number;\n        FiscalRegisterConfiguration?: string;\n        FiscalRegisterDeviceDescription?: string;\n        FiscalRegisterDeviceName?: string;\n        KeyboardMappingId?: string;\n        KeyLockDeviceTypeValue?: number;\n        KeyLockDeviceDescription?: string;\n        KeyLockDeviceName?: string;\n        MsrDeviceTypeValue?: number;\n        MsrDeviceDescription?: string;\n        MsrDeviceName?: string;\n        MsrMake?: string;\n        MsrModel?: string;\n        MsrSeparator?: string;\n        MsrStartTrack?: string;\n        PinPadDeviceTypeValue?: number;\n        PinPadDeviceName?: string;\n        PinPadMake?: string;\n        PinPadModel?: string;\n        PinPadDeviceDescription?: string;\n        ProfileDescription?: string;\n        ProfileId?: string;\n        RFIDDeviceTypeValue?: number;\n        RFIDDeviceName?: string;\n        RFIDDeviceDescription?: string;\n        ScaleDeviceTypeValue?: number;\n        ScaleDeviceName?: string;\n        ScaleDeviceDescription?: string;\n        ScaleManualInputAllowed?: boolean;\n        ScaleTimeoutInSeconds?: number;\n        SignatureCaptureDeviceTypeValue?: number;\n        SignatureCaptureDeviceName?: string;\n        SignatureCaptureMake?: string;\n        SignatureCaptureModel?: string;\n        SignatureCaptureDeviceDescription?: string;\n        SignatureCaptureFormName?: string;\n        PinPadAllowNfcPayment?: boolean;\n        Printers?: HardwareProfilePrinter[];\n        Scanners?: HardwareProfileScanner[];\n        FiscalIntegrationTechnicalProfiles?: FiscalIntegrationTechnicalProfile[];\n        CashDrawers?: HardwareProfileCashDrawer[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SupportedLanguage entity interface.\n     */\n    export interface SupportedLanguage {\n        LanguageId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PaymentCard entity interface.\n     */\n    export interface PaymentCard {\n        UseShippingAddress?: boolean;\n        CardNumber?: string;\n        CCID?: string;\n        Track1?: string;\n        Track2?: string;\n        Track3?: string;\n        VoiceAuthorizationCode?: string;\n        EncryptedPin?: string;\n        AdditionalSecurityData?: string;\n        IsSwipe?: boolean;\n        Phone?: string;\n        Country?: string;\n        House?: string;\n        Address1?: string;\n        Address2?: string;\n        City?: string;\n        State?: string;\n        Zip?: string;\n        NameOnCard?: string;\n        CardTypeId?: string;\n        ExpirationMonth?: number;\n        ExpirationYear?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CardPaymentAcceptSettings entity interface.\n     */\n    export interface CardPaymentAcceptSettings {\n        HostPageOrigin?: string;\n        AdaptorPath?: string;\n        CardTokenizationEnabled?: boolean;\n        CardPaymentEnabled?: boolean;\n        PaymentAmount?: number;\n        HideBillingAddress?: boolean;\n        TenderTypeId?: string;\n        Locale?: string;\n        RequireShippingAddress?: boolean;\n        }\n    \n    /**\n     * CardPaymentAcceptPoint entity interface.\n     */\n    export interface CardPaymentAcceptPoint {\n        AcceptPageUrl?: string;\n        AcceptPageSubmitUrl?: string;\n        MessageOrigin?: string;\n        AcceptPageContent?: string;\n        PaymentConnectorId?: string;\n        NotReloadAcceptPageContentWhenAmountChanged?: boolean;\n        }\n    \n    /**\n     * CardPaymentAcceptResult entity interface.\n     */\n    export interface CardPaymentAcceptResult {\n        TenderLine?: TenderLine;\n        TokenizedPaymentCard?: TokenizedPaymentCard;\n        PaymentSdkErrors?: PaymentError[];\n        AdditionalContext?: string;\n        AccessCode?: string;\n        Settings?: RetrievePaymentResultSettings;\n        Email?: string;\n        }\n    \n    /**\n     * ReasonCodeLine entity interface.\n     */\n    export interface ReasonCodeLine {\n        LineId?: string;\n        Amount?: number;\n        Information?: string;\n        InformationAmount?: number;\n        InputTypeValue?: number;\n        ItemTender?: string;\n        LineNumber?: number;\n        LineTypeValue?: number;\n        ParentLineId?: string;\n        ReasonCodeId?: string;\n        StatementCode?: string;\n        SubReasonCodeId?: string;\n        SourceCode?: string;\n        SourceCode2?: string;\n        SourceCode3?: string;\n        TransactionId?: string;\n        CreatedDateTime?: Date;\n        FiscalTransactionParentGuid?: string;\n        IsChanged?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReasonSubCode entity interface.\n     */\n    export interface ReasonSubCode {\n        TriggerCode?: string;\n        AmountPercent: number;\n        ReasonCodeId?: string;\n        SubCodeId?: string;\n        Description?: string;\n        DescriptionTranslation?: string;\n        TriggerFunctionTypeValue?: number;\n        ProductId?: number;\n        PriceTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Receipt entity interface.\n     */\n    export interface Receipt {\n        TransactionId?: string;\n        Header?: string;\n        Body?: string;\n        Footer?: string;\n        Width?: number;\n        ReceiptId?: string;\n        LayoutId?: string;\n        ReceiptTitle?: string;\n        ReceiptTypeValue?: number;\n        ReceiptTypeStrValue?: string;\n        Printers?: Printer[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReceiptMask entity interface.\n     */\n    export interface ReceiptMask {\n        FunctionalityProfileId?: string;\n        IsIndependent: boolean;\n        ReceiptTransactionTypeValue: number;\n        RecordId: number;\n        Mask?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SalesLine entity interface.\n     */\n    export interface SalesLine {\n        StaffId?: string;\n        LineId?: string;\n        Description?: string;\n        OriginLineId?: string;\n        TaxOverrideCode?: string;\n        IsPriceKeyedIn?: boolean;\n        IsTaxOverideCodeTaxExempt?: boolean;\n        ProductId?: number;\n        Barcode?: string;\n        BarcodeEmbeddedPrice?: number;\n        PriceInBarcode?: boolean;\n        EntryMethodTypeValue?: number;\n        MasterProductId?: number;\n        ListingId?: number;\n        IsPriceOverridden?: boolean;\n        OriginalPrice?: number;\n        TotalAmount?: number;\n        NetAmountWithoutTax?: number;\n        DiscountAmount?: number;\n        DiscountAmountWithoutTax?: number;\n        NetPrice?: number;\n        TotalDiscount?: number;\n        TotalPercentageDiscount?: number;\n        LineDiscount?: number;\n        PeriodicDiscount?: number;\n        LineManualDiscountPercentage?: number;\n        LineManualDiscountAmount?: number;\n        ShippingAddress?: Address;\n        DeliveryMode?: string;\n        Comment?: string;\n        RequestedDeliveryDate?: Date;\n        ConfirmedShipDate?: Date;\n        PickupTimeslotStartDateTime?: Date;\n        PickupTimeslotEndDateTime?: Date;\n        InventoryLocationId?: string;\n        InventorySiteId?: string;\n        WarehouseLocation?: string;\n        InventoryStatusId?: string;\n        LicensePlate?: string;\n        InventoryDimensionId?: string;\n        InventoryTransactionId?: string;\n        ItemType?: number;\n        ReservationId?: string;\n        LineNumber?: number;\n        ReturnQuantity?: number;\n        QuantityRemained?: number;\n        QuantityShipped?: number;\n        LineVersion?: number;\n        StatusValue?: number;\n        SalesStatusValue?: number;\n        ProductSourceValue?: number;\n        IsGiftCardLine?: boolean;\n        GiftCardId?: string;\n        GiftCardCurrencyCode?: string;\n        GiftCardOperationValue?: number;\n        GiftCardTypeValue?: number;\n        IsInvoiceLine?: boolean;\n        InvoiceId?: string;\n        InvoiceAmount?: number;\n        IsInvoiceSettled?: boolean;\n        InvoiceTypeValue?: number;\n        InvoicedSalesId?: string;\n        IsVoided?: boolean;\n        IsPriceLocked?: boolean;\n        ChargeLines?: ChargeLine[];\n        BasePrice?: number;\n        AgreementPrice?: number;\n        AdjustedPrice?: number;\n        IsWarrantyLine?: boolean;\n        WarrantableTransactionId?: string;\n        WarrantableSalesId?: string;\n        WarrantableLineNumber?: number;\n        WarrantableSerialNumber?: string;\n        ReturnTransactionId?: string;\n        ReturnLineNumber?: number;\n        ReturnInventTransId?: string;\n        ReturnStore?: string;\n        ReturnTerminalId?: string;\n        ReturnChannelId?: number;\n        FulfillmentStoreId?: string;\n        SalesDate?: Date;\n        QuantityInvoiced?: number;\n        QuantityOrdered?: number;\n        QuantityCanceled?: number;\n        SavedQuantity?: number;\n        IsSavedDiscount?: boolean;\n        RecordId?: number;\n        SerialNumber?: string;\n        BatchId?: string;\n        DeliveryModeChargeAmount?: number;\n        UnitOfMeasureSymbol?: string;\n        CatalogId?: number;\n        ElectronicDeliveryEmailAddress?: string;\n        ElectronicDeliveryEmailContent?: string;\n        LoyaltyDiscountAmount?: number;\n        LoyaltyPercentageDiscount?: number;\n        TenderDiscountAmount?: number;\n        TenderDiscountPercentage?: number;\n        GiftCardBalance?: number;\n        IsCustomerAccountDeposit?: boolean;\n        Blocked?: boolean;\n        Found?: boolean;\n        DateToActivateItem?: Date;\n        LinePercentageDiscount?: number;\n        PeriodicPercentageDiscount?: number;\n        QuantityDiscounted?: number;\n        UnitQuantity?: number;\n        UnitOfMeasureConversion?: UnitOfMeasureConversion;\n        DiscountLines?: DiscountLine[];\n        PriceLines?: PriceLine[];\n        AttainablePriceLines?: PriceLine[];\n        PeriodicDiscountPossibilities?: DiscountLine[];\n        ReasonCodeLines?: ReasonCodeLine[];\n        ReturnLabelProperties?: ReturnLabelContent;\n        LineMultilineDiscOnItem?: string;\n        RelatedDiscountedLineIds?: string[];\n        LinkedParentLineId?: string;\n        LineMultilineDiscOnItemValue?: number;\n        WasChanged?: boolean;\n        OriginalSalesOrderUnitOfMeasure?: string;\n        InventOrderUnitOfMeasure?: string;\n        TrackingId?: string;\n        IsLoyaltyDiscountApplied?: boolean;\n        CommissionSalesGroup?: string;\n        IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n        CommissionSalesGroupSetByCashier?: string;\n        QuantityNotProcessed?: number;\n        QuantityReserved?: number;\n        QuantityPicked?: number;\n        QuantityPacked?: number;\n        AttributeValues?: AttributeValueBase[];\n        ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n        QuantityReturnable?: number;\n        LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n        ReturnLoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n        FulfillmentStatus?: FulfillmentLineStatus;\n        FulfillmentStatusValue?: number;\n        DetailedLineStatusValue?: number;\n        DetailedLineStatus?: DetailedLineStatus;\n        LastReturnProcessedTime?: Date;\n        SalesAgreementPrice?: number;\n        SalesAgreementLineRecordId?: number;\n        IsSalesAgreementSkipped?: boolean;\n        ItemId?: string;\n        Quantity?: number;\n        Price?: number;\n        ItemTaxGroupId?: string;\n        SalesTaxGroupId?: string;\n        OriginalSalesTaxGroupId?: string;\n        OriginalItemTaxGroupId?: string;\n        TaxAmount?: number;\n        SalesOrderUnitOfMeasure?: string;\n        NetAmount?: number;\n        NetAmountPerUnit?: number;\n        GrossAmount?: number;\n        TaxLines?: TaxLine[];\n        TaxMeasures?: TaxMeasure[];\n        TaxAmountExemptInclusive?: number;\n        TaxAmountInclusive?: number;\n        TaxAmountExclusive?: number;\n        NetAmountWithAllInclusiveTax?: number;\n        BeginDateTime?: Date;\n        EndDateTime?: Date;\n        TaxRatePercent?: number;\n        IsReturnByReceipt?: boolean;\n        ReturnLineTaxAmount?: number;\n        ReturnTaxLines?: TaxLine[];\n        TaxExemptPriceInclusiveReductionAmount?: number;\n        TaxExemptPriceInclusiveOriginalPrice?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SearchArea entity interface.\n     */\n    export interface SearchArea {\n        Longitude?: number;\n        Latitude?: number;\n        Radius?: number;\n        DistanceUnitValue?: number;\n        }\n    \n    /**\n     * ShiftAccountLine entity interface.\n     */\n    export interface ShiftAccountLine {\n        AccountTypeValue?: number;\n        AccountNumber?: string;\n        Amount?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ShiftTenderLine entity interface.\n     */\n    export interface ShiftTenderLine {\n        TenderTypeId?: string;\n        TenderTypeName?: string;\n        CardTypeId?: string;\n        TenderCurrency?: string;\n        CountingRequired?: boolean;\n        StartingAmountOfStoreCurrency?: number;\n        StartingAmountOfTenderCurrency?: number;\n        FloatingEntryAmountOfStoreCurrency?: number;\n        FloatingEntryAmountOfTenderCurrency?: number;\n        SafeDropAmountOfStoreCurrency?: number;\n        SafeDropAmountOfTenderCurrency?: number;\n        BankDropAmountOfStoreCurrency?: number;\n        BankDropAmountOfTenderCurrency?: number;\n        RemoveTenderAmountOfStoreCurrency?: number;\n        RemoveTenderAmountOfTenderCurrency?: number;\n        DeclareTenderAmountOfStoreCurrency?: number;\n        DeclareTenderAmountOfTenderCurrency?: number;\n        TenderedAmountOfStoreCurrency?: number;\n        TenderedAmountOfTenderCurrency?: number;\n        ChangeAmountOfStoreCurrency?: number;\n        ChangeAmountOfTenderCurrency?: number;\n        Count?: number;\n        Notes?: string;\n        Overridden?: boolean;\n        OverriddenFloatEntryAmountInStoreCurrency?: number;\n        OverriddenFloatEntryAmountInTenderedCurrency?: number;\n        OverriddenBankDropAmountInStoreCurrency?: number;\n        OverriddenBankDropAmountInTenderedCurrency?: number;\n        OverriddenChangeAmountInStoreCurrency?: number;\n        OverriddenChangeAmountInTenderedCurrency?: number;\n        OverriddenDeclaredTenderAmountInStoreCurrency?: number;\n        OverriddenDeclaredTenderAmountInTenderedCurrency?: number;\n        OverriddenRemovedTenderAmountInStoreCurrency?: number;\n        OverriddenRemovedTenderAmountInTenderedCurrency?: number;\n        OverriddenSafeDropAmountInStoreCurrency?: number;\n        OverriddenSafeDropAmountInTenderedCurrency?: number;\n        OverriddenStartingAmountInStoreCurrency?: number;\n        OverriddenStartingAmountInTenderedCurrency?: number;\n        OverriddenTenderedAmountInStoreCurrency?: number;\n        OverriddenTenderedAmountInTenderedCurrency?: number;\n        OverShortAmountOfTenderCurrency?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * StockCountJournalTransaction entity interface.\n     */\n    export interface StockCountJournalTransaction {\n        JournalId?: string;\n        RecordId?: number;\n        OperationType?: number;\n        ItemId?: string;\n        DataAreaId?: string;\n        ProductRecordId?: number;\n        ItemName?: string;\n        InventDimId?: string;\n        Counted?: number;\n        Quantity?: number;\n        EstimatedOnHandQuantity?: number;\n        OnHandCalculationDateTime?: Date;\n        Unit?: string;\n        UserId?: string;\n        TerminalId?: string;\n        CountedDate?: Date;\n        Status?: number;\n        InventBatchId?: string;\n        WarehouseLocationId?: string;\n        InventoryStatus?: string;\n        LicensePlate?: string;\n        WarehousePalletId?: string;\n        InventSiteId?: string;\n        InventLocationId?: string;\n        ConfigId?: string;\n        InventSizeId?: string;\n        InventColorId?: string;\n        InventStyleId?: string;\n        InventSerialId?: string;\n        TrackingGuid?: string;\n        UpdatedInAx?: boolean;\n        Message?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TaxLine entity interface.\n     */\n    export interface TaxLine {\n        TaxGroup?: string;\n        Percentage?: number;\n        IsExempt?: boolean;\n        TaxBasis?: number;\n        IsIncludedInPrice?: boolean;\n        SaleLineNumber?: number;\n        StoreId?: string;\n        TerminalId?: string;\n        TransactionId?: string;\n        TaxCode?: string;\n        Amount?: number;\n        AmountRefunded?: number;\n        IsTaxGroupRounding?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TenderLine entity interface.\n     */\n    export interface TenderLine {\n        StoreId?: string;\n        TerminalId?: string;\n        TransactionId?: string;\n        InternalTransactionId?: string;\n        RefundableAmount?: number;\n        CaptureToken?: string;\n        CardToken?: string;\n        Authorization?: string;\n        TransactionStatusValue?: number;\n        IncomeExpenseAccountTypeValue?: number;\n        MaskedCardNumber?: string;\n        TenderDate?: Date;\n        IsPreProcessed?: boolean;\n        IsDeposit?: boolean;\n        IsCustomerAccountFloorLimitUsed?: boolean;\n        AuthorizationReferenceId?: string;\n        IsIncrementalCaptureEnabled?: boolean;\n        IsReauthorizationEnabled?: boolean;\n        IncrementalOffsetAmount?: number;\n        ChannelId?: number;\n        IsLinkedRefund?: boolean;\n        LinkedPaymentStore?: string;\n        LinkedPaymentTerminalId?: string;\n        LinkedPaymentTransactionId?: string;\n        LinkedPaymentLineNumber?: number;\n        LinkedPaymentCurrency?: string;\n        RoundingDifference?: number;\n        RemainingLinkedRefundAmount?: number;\n        TenderLineId?: string;\n        Amount?: number;\n        CashBackAmount?: number;\n        AmountInTenderedCurrency?: number;\n        AmountInCompanyCurrency?: number;\n        Currency?: string;\n        ExchangeRate?: number;\n        CompanyCurrencyExchangeRate?: number;\n        TenderTypeId?: string;\n        SignatureData?: string;\n        ReasonCodeLines?: ReasonCodeLine[];\n        LineNumber?: number;\n        GiftCardId?: string;\n        GiftCardPin?: string;\n        GiftCardExpirationYear?: number;\n        GiftCardExpirationMonth?: number;\n        CreditMemoId?: string;\n        CustomerId?: string;\n        LoyaltyCardId?: string;\n        CardTypeId?: string;\n        IsChangeLine?: boolean;\n        IsHistorical?: boolean;\n        IsVoidable?: boolean;\n        StatusValue?: number;\n        VoidStatusValue?: number;\n        AuthorizedAmount?: number;\n        PaymentRefRecId?: number;\n        CardPaymentAccountId?: string;\n        ProcessingTypeValue?: number;\n        CardProcessorStatusValue?: number;\n        LinkedPaymentRefRecId?: number;\n        IsPolicyBypassed?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TextValueTranslation entity interface.\n     */\n    export interface TextValueTranslation {\n        Language?: string;\n        Text?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * UnitOfMeasure entity interface.\n     */\n    export interface UnitOfMeasure {\n        DecimalPrecision?: number;\n        Symbol?: string;\n        Description?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductUnitOfMeasure entity interface.\n     */\n    export interface ProductUnitOfMeasure extends UnitOfMeasure {\n        UnitOfMeasureSourceValue?: number;\n        ProductQuantityLimitRules?: ProductQuantityLimitRule;\n        }\n    \n    /**\n     * RecommendedElement entity interface.\n     */\n    export interface RecommendedElement {\n        ElementId?: string;\n        ElementTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * RecommendationCriteria entity interface.\n     */\n    export interface RecommendationCriteria {\n        CustomerAccountNumber?: string;\n        CatalogId?: number;\n        ProductIds?: number[];\n        CategoryIds?: number[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductListLine entity interface.\n     */\n    export interface ProductListLine {\n        ProductListId?: string;\n        LineId?: string;\n        ProductId?: number;\n        Quantity?: number;\n        UnitOfMeasure?: string;\n        CreatedDateTime?: Date;\n        LastUpdated?: Date;\n        DeletedDateTime?: Date;\n        DataAreaId?: string;\n        CatalogId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CommerceListLine entity interface.\n     */\n    export interface CommerceListLine {\n        CommerceListId?: number;\n        LineId?: number;\n        CustomerId?: string;\n        CustomerName?: string;\n        ProductId?: number;\n        Quantity?: number;\n        UnitOfMeasure?: string;\n        IsFavorite?: boolean;\n        IsRecurring?: boolean;\n        IsPrivate?: boolean;\n        CreatedDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CommerceListContributor entity interface.\n     */\n    export interface CommerceListContributor {\n        RecordId?: number;\n        CustomerId?: string;\n        CustomerName?: string;\n        InvitationId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CommerceListInvitation entity interface.\n     */\n    export interface CommerceListInvitation {\n        RecordId?: number;\n        Invitee?: string;\n        IsSent?: boolean;\n        LastRequestDateTime?: Date;\n        LastSentDateTime?: Date;\n        StatusValue?: number;\n        Token?: string;\n        InvitationTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SearchFilter entity interface.\n     */\n    export interface SearchFilter {\n        Key?: string;\n        FilterTypeValue: number;\n        SearchValues?: SearchFilterValue[];\n        }\n    \n    /**\n     * SearchFilterValue entity interface.\n     */\n    export interface SearchFilterValue {\n        Value?: CommercePropertyValue;\n        }\n    \n    /**\n     * TransactionSearchCriteria entity interface.\n     */\n    export interface TransactionSearchCriteria {\n        TransactionIds?: string[];\n        SalesId?: string;\n        ReceiptId?: string;\n        ChannelReferenceId?: string;\n        CustomerAccountNumber?: string;\n        CustomerFirstName?: string;\n        CustomerLastName?: string;\n        StoreId?: string;\n        TerminalId?: string;\n        ItemId?: string;\n        Barcode?: string;\n        SerialNumber?: string;\n        StaffId?: string;\n        StartDateTime?: Date;\n        EndDateTime?: Date;\n        ReceiptEmailAddress?: string;\n        SearchIdentifiers?: string;\n        SearchLocationTypeValue?: number;\n        CustomFilters?: SearchFilter[];\n        }\n    \n    /**\n     * SalesOrderSearchCriteria entity interface.\n     */\n    export interface SalesOrderSearchCriteria {\n        TransactionIds?: string[];\n        SalesId?: string;\n        ReceiptId?: string;\n        ChannelReferenceId?: string;\n        CustomerAccountNumber?: string;\n        CustomerFirstName?: string;\n        CustomerLastName?: string;\n        StoreId?: string;\n        TerminalId?: string;\n        ItemId?: string;\n        Barcode?: string;\n        SerialNumber?: string;\n        StaffId?: string;\n        SearchTypeValue?: number;\n        StartDateTime?: Date;\n        EndDateTime?: Date;\n        IncludeDetails?: boolean;\n        ReceiptEmailAddress?: string;\n        SearchIdentifiers?: string;\n        SalesTransactionTypeValues?: number[];\n        SearchLocationTypeValue?: number;\n        TransactionStatusTypeValues?: number[];\n        }\n    \n    /**\n     * SearchStoreCriteria entity interface.\n     */\n    export interface SearchStoreCriteria {\n        ChannelId?: number;\n        StoreNumber?: string;\n        InventoryLocationId?: string;\n        ChannelTypeValue?: number;\n        OnlineStoreCustomerTypeValue?: number;\n        }\n    \n    /**\n     * CustomerSearchCriteria entity interface.\n     */\n    export interface CustomerSearchCriteria {\n        Keyword?: string;\n        SearchOnlyCurrentCompany?: boolean;\n        SearchLocationValue?: number;\n        Refinements?: CustomerRefinerValue[];\n        DataLevelValue?: number;\n        }\n    \n    /**\n     * ProductPrice entity interface.\n     */\n    export interface ProductPrice {\n        ProductId?: number;\n        ListingId?: number;\n        BasePrice?: number;\n        TradeAgreementPrice?: number;\n        AdjustedPrice?: number;\n        MaxVariantPrice?: number;\n        MinVariantPrice?: number;\n        CustomerContextualPrice?: number;\n        DiscountAmount?: number;\n        CurrencyCode?: string;\n        ItemId?: string;\n        InventoryDimensionId?: string;\n        UnitOfMeasure?: string;\n        ValidFrom?: Date;\n        ProductLookupId?: number;\n        ChannelId?: number;\n        CatalogId?: number;\n        DiscountLines?: DiscountLine[];\n        SalesAgreementPrice?: number;\n        PriceSourceTypeValue?: number;\n        AttainablePriceLines?: PriceLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OrgUnitAvailability entity interface.\n     */\n    export interface OrgUnitAvailability {\n        OrgUnitLocation?: OrgUnitLocation;\n        ItemAvailabilities?: ItemAvailability[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductVariantPropertySet entity interface.\n     */\n    export interface ProductVariantPropertySet {\n        VariantId?: number;\n        ProductVariantPropertiesAsList?: ProductPropertyTranslation[];\n        }\n    \n    /**\n     * PurchaseOrderLine entity interface.\n     */\n    export interface PurchaseOrderLine {\n        RecordId?: number;\n        OrderId?: string;\n        ProductRecordId?: number;\n        ItemId?: string;\n        ItemName?: string;\n        InventDimId?: string;\n        QuantityOrdered?: number;\n        PurchaseQuantity?: number;\n        PurchaseUnit?: string;\n        PurchaseReceived?: number;\n        PurchaseReceivedNow?: number;\n        InventBatchId?: string;\n        WMSLocationId?: string;\n        WMSPalletId?: string;\n        InventoryStatus?: string;\n        LicensePlate?: string;\n        InventSiteId?: string;\n        InventLocationId?: string;\n        ConfigId?: string;\n        InventSerialId?: string;\n        InventSizeId?: string;\n        InventColorId?: string;\n        InventStyleId?: string;\n        IsCommitted?: boolean;\n        Message?: string;\n        UniqueIdentifier?: string;\n        DeliveryMethod?: string;\n        DataAreaId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TransferOrderLine entity interface.\n     */\n    export interface TransferOrderLine {\n        RecordId?: number;\n        OrderId?: string;\n        ProductRecordId?: number;\n        ItemId?: string;\n        ItemName?: string;\n        InventDimId?: string;\n        QuantityTransferred?: number;\n        QuantityShipped?: number;\n        QuantityReceived?: number;\n        QuantityShipNow?: number;\n        QuantityReceiveNow?: number;\n        QuantityRemainShip?: number;\n        QuantityRemainReceive?: number;\n        PurchaseUnit?: string;\n        InventBatchId?: string;\n        WMSLocationId?: string;\n        WMSPalletId?: string;\n        InventoryStatus?: string;\n        LicensePlate?: string;\n        InventSiteId?: string;\n        InventLocationId?: string;\n        ConfigId?: string;\n        InventSerialId?: string;\n        InventSizeId?: string;\n        InventColorId?: string;\n        InventStyleId?: string;\n        IsCommitted?: boolean;\n        Message?: string;\n        Guid?: string;\n        DeliveryMethod?: string;\n        DataAreaId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TransferOrderJournal entity interface.\n     */\n    export interface TransferOrderJournal {\n        OrderId?: string;\n        VoucherId?: string;\n        UpdatedByWorker?: string;\n        InventLocationIdFrom?: string;\n        InventLocationIdTo?: string;\n        QuantityShipped?: number;\n        PostingDate?: Date;\n        DeliveryMode?: string;\n        Comments?: string;\n        JournalLines?: TransferOrderJournalLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PickingListLine entity interface.\n     */\n    export interface PickingListLine {\n        RecordId?: number;\n        OrderId?: string;\n        ProductRecordId?: number;\n        ItemId?: string;\n        ItemName?: string;\n        InventDimId?: string;\n        QuantityOrdered?: number;\n        PurchaseReceivedNow?: number;\n        InventBatchId?: string;\n        WMSLocationId?: string;\n        WMSPalletId?: string;\n        InventoryStatus?: string;\n        LicensePlate?: string;\n        InventSiteId?: string;\n        InventLocationId?: string;\n        ConfigId?: string;\n        InventSerialId?: string;\n        InventSizeId?: string;\n        InventColorId?: string;\n        InventStyleId?: string;\n        IsCommitted?: boolean;\n        Message?: string;\n        Guid?: string;\n        DeliveryMethod?: string;\n        DataAreaId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Affiliation entity interface.\n     */\n    export interface Affiliation {\n        RecordId?: number;\n        AffiliationTypeValue?: number;\n        Description?: string;\n        Name?: string;\n        IsHidden?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryInboundOutboundDocumentLinesSummary entity interface.\n     */\n    export interface InventoryInboundOutboundDocumentLinesSummary {\n        InProgressQuantity?: number;\n        TotalLineNumber?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentSerialNumberLinesSummary entity interface.\n     */\n    export interface InventoryDocumentSerialNumberLinesSummary {\n        RegisteringQuantity?: number;\n        RegisteredQuantity?: number;\n        TotalLineNumber?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryInboundOutboundDocumentLine entity interface.\n     */\n    export interface InventoryInboundOutboundDocumentLine {\n        WorkDocumentId?: string;\n        LineId?: string;\n        SourceDocumentRecordId?: number;\n        SourceDocumentLineRecordId?: number;\n        SourceDocumentTypeValue?: number;\n        QuantityOrdered?: number;\n        QuantityShipped?: number;\n        QuantityReceived?: number;\n        QuantityCancelled?: number;\n        QuantityToUpdate?: number;\n        LocationId?: string;\n        ItemId?: string;\n        ProductId?: number;\n        ItemName?: string;\n        ItemPrimaryImageUrl?: string;\n        IsLocationActive?: boolean;\n        IsLocationAllowBlankReceiptEnabled?: boolean;\n        IsLocationBlankIssueAllowed?: boolean;\n        ProductDimensions?: ProductDimension[];\n        Note?: string;\n        NoteModifiedByStaffId?: string;\n        NoteModifiedDateTime?: Date;\n        OperationResultMessage?: string;\n        IsCloseLine?: boolean;\n        OriginTypeValue?: number;\n        UnitOfMeasure?: string;\n        SourceDocumentLine?: InventoryInboundOutboundSourceDocumentLine;\n        SerialNumberLines?: InventoryDocumentSerialNumberLine[];\n        TrackingDimensionLines?: InventoryDocumentTrackingDimensionLine[];\n        LongVersion?: number;\n        ToLocationId?: string;\n        AdjustmentTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryInboundOutboundSourceDocument entity interface.\n     */\n    export interface InventoryInboundOutboundSourceDocument {\n        RecordId?: number;\n        DocumentTypeValue?: number;\n        DocumentId?: string;\n        StatusValue?: number;\n        ReceiveDate?: Date;\n        ShipDate?: Date;\n        Sender?: string;\n        Receiver?: string;\n        SenderDetails?: string;\n        ReceiverDetails?: string;\n        DeliveryMode?: string;\n        TotalQuantityOrdered?: number;\n        TotalQuantityShipped?: number;\n        TotalQuantityReceived?: number;\n        TotalQuantityCancelled?: number;\n        DataAreaId?: string;\n        Note?: string;\n        TotalLines?: number;\n        IsChangeAllowed?: boolean;\n        NoteModifiedByStaffId?: string;\n        NoteModifiedDateTime?: Date;\n        DocumentTypeId?: string;\n        Description?: string;\n        StaffId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryInboundOutboundSourceDocumentLine entity interface.\n     */\n    export interface InventoryInboundOutboundSourceDocumentLine {\n        DocumentRecordId?: number;\n        DocumentTypeValue?: number;\n        RecordId?: number;\n        LineNumber?: number;\n        ItemId?: string;\n        ProductId?: number;\n        QuantityOrdered?: number;\n        QuantityShipped?: number;\n        QuantityReceived?: number;\n        QuantityCancelled?: number;\n        LocationId?: string;\n        OverDeliveryPercentage?: number;\n        UnderDeliveryPercentage?: number;\n        UnitId?: string;\n        Receiver?: string;\n        DataAreaId?: string;\n        Note?: string;\n        NoteModifiedByStaffId?: string;\n        NoteModifiedDateTime?: Date;\n        DocumentId?: string;\n        ItemName?: string;\n        ItemPrimaryImageUrl?: string;\n        IsLocationActive?: boolean;\n        IsLocationAllowBlankReceiptEnabled?: boolean;\n        IsLocationBlankIssueAllowed?: boolean;\n        HasSerialNumber?: boolean;\n        IsSerialNumberBlankReceiptAllowed?: boolean;\n        IsSerialNumberDuplicateCheckEnabled?: boolean;\n        ProductDimensions?: ProductDimension[];\n        SerialNumberLines?: InventoryDocumentSourceSerialNumberLine[];\n        TrackingDimensionLines?: InventoryDocumentSourceTrackingDimensionLine[];\n        StatusValue?: number;\n        ToProductId?: number;\n        ToLocationId?: string;\n        InventoryDimensionId?: string;\n        ToInventoryDimensionId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentLineFilterCriteria entity interface.\n     */\n    export interface InventoryDocumentLineFilterCriteria {\n        ProductId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentUpdateLinesAction entity interface.\n     */\n    export interface InventoryDocumentUpdateLinesAction {\n        Quantity?: number;\n        ActionTypeValue?: number;\n        LocationId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentLineOperationResultSettings entity interface.\n     */\n    export interface InventoryDocumentLineOperationResultSettings {\n        ModeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentLineSearchCriteria entity interface.\n     */\n    export interface InventoryDocumentLineSearchCriteria {\n        SourceDocumentId?: string;\n        SourceDocumentTypeValue?: number;\n        WorkDocumentId?: string;\n        ProductId?: number;\n        ItemIds?: string[];\n        AvailableSerializedLineOnly?: boolean;\n        DocumentLineIds?: string[];\n        DocumentOperationTypeValue?: number;\n        OperationTypeValue?: number;\n        LocationId?: string;\n        ToLocationId?: string;\n        AdjustmentTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentSearchCriteria entity interface.\n     */\n    export interface InventoryDocumentSearchCriteria {\n        DocumentId?: string;\n        TransferFromWarehouse?: string;\n        ShipFromWarehouse?: string;\n        TransferToWarehouse?: string;\n        Description?: string;\n        DocumentTypeIds?: string[];\n        DocumentStateValue?: number;\n        DocumentTypeValues?: number[];\n        CustomFilters?: SearchFilter[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentSerialNumberLineSearchCriteria entity interface.\n     */\n    export interface InventoryDocumentSerialNumberLineSearchCriteria {\n        DocumentLineId?: string;\n        SerialNumber?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentSerialNumberLineUpdateAction entity interface.\n     */\n    export interface InventoryDocumentSerialNumberLineUpdateAction {\n        DocumentLineId?: string;\n        LineId?: string;\n        SerialNumber?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentSerialNumberLineResetAction entity interface.\n     */\n    export interface InventoryDocumentSerialNumberLineResetAction {\n        DocumentLineId?: string;\n        LineId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity interface.\n     */\n    export interface InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n        UpdatedLines?: InventoryInboundOutboundDocumentLine[];\n        TotalLinesUpdated?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * WarehouseLocationSearchCriteria entity interface.\n     */\n    export interface WarehouseLocationSearchCriteria {\n        WarehouseIds?: string[];\n        IsLocationProfileRequired?: boolean;\n        SearchText?: string;\n        }\n    \n    /**\n     * InventoryDocumentSerialNumberLine entity interface.\n     */\n    export interface InventoryDocumentSerialNumberLine {\n        WorkDocumentId?: string;\n        WorkDocumentLineId?: string;\n        SourceLineId?: string;\n        LineId?: string;\n        Quantity?: number;\n        SerialNumber?: string;\n        StatusValue?: number;\n        ProductId?: number;\n        ModifiedDateTime?: Date;\n        SourceDocumentRecordId?: number;\n        SourceDocumentTypeValue?: number;\n        SourceDocumentLineRecordId?: number;\n        SourceLine?: InventoryDocumentSourceSerialNumberLine;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentValidationCategoryResultsSummary entity interface.\n     */\n    export interface InventoryDocumentValidationCategoryResultsSummary {\n        CategoryName?: string;\n        SeverityValue?: number;\n        TotalValidationResultCount?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentValidationResultSummary entity interface.\n     */\n    export interface InventoryDocumentValidationResultSummary {\n        DocumentId?: string;\n        DocumentVersion?: number;\n        CategorySummaries?: InventoryDocumentValidationCategoryResultsSummary[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentValidationResultLine entity interface.\n     */\n    export interface InventoryDocumentValidationResultLine {\n        DocumentValidationResultLineId?: string;\n        CategoryName?: string;\n        SeverityValue?: number;\n        ErrorCode?: number;\n        ErrorMessage?: string;\n        DocumentId?: string;\n        DocumentLongVersion?: number;\n        DocumentLineId?: string;\n        CreatedDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentValidationResultSearchCriteria entity interface.\n     */\n    export interface InventoryDocumentValidationResultSearchCriteria {\n        DocumentId?: string;\n        DocumentVersion?: number;\n        SeverityValue?: number;\n        Categories?: string[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductDimensionValueInventoryAvailability entity interface.\n     */\n    export interface ProductDimensionValueInventoryAvailability {\n        DimensionTypeValue?: number;\n        DimensionValue?: ProductDimensionValue;\n        ProductIds?: number[];\n        TotalAvailableInventoryLevelLabel?: string;\n        TotalAvailableInventoryLevelCode?: string;\n        PhysicalAvailableInventoryLevelLabel?: string;\n        PhysicalAvailableInventoryLevelCode?: string;\n        }\n    \n    /**\n     * UnitOfMeasureSearchCriteria entity interface.\n     */\n    export interface UnitOfMeasureSearchCriteria {\n        IncludeQuantityLimitRules?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductDimension entity interface.\n     */\n    export interface ProductDimension {\n        DimensionTypeValue: number;\n        DimensionValue?: ProductDimensionValue;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductDimensionValue entity interface.\n     */\n    export interface ProductDimensionValue {\n        RecordId: number;\n        Value?: string;\n        DimensionId?: string;\n        ColorHexCode?: string;\n        ImageUrl?: string;\n        RefinerGroup?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductDimensionCombination entity interface.\n     */\n    export interface ProductDimensionCombination {\n        ProductDimensions?: ProductDimension[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SearchRefiner entity interface.\n     */\n    export interface SearchRefiner {\n        RecordId?: number;\n        KeyName?: string;\n        DataTypeValue?: number;\n        RefinerTypeValue?: number;\n        DisplayTemplateValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SearchRefinerValue entity interface.\n     */\n    export interface SearchRefinerValue {\n        RefinerRecordId?: number;\n        DataTypeValue?: number;\n        LeftValueBoundString?: string;\n        RightValueBoundString?: string;\n        UnitText?: string;\n        RowNumber?: number;\n        Count?: number;\n        LeftValueBoundLocalizedString?: string;\n        RightValueBoundLocalizedString?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductRefiner entity interface.\n     */\n    export interface ProductRefiner extends SearchRefiner {\n        SourceValue?: number;\n        Values?: ProductRefinerValue[];\n        IsDimension?: boolean;\n        }\n    \n    /**\n     * ProductRefinerValue entity interface.\n     */\n    export interface ProductRefinerValue extends SearchRefinerValue {\n        RefinerSourceValue?: number;\n        SwatchImageUrl?: string;\n        SwatchColorHexCode?: string;\n        }\n    \n    /**\n     * ClientBookRefiner entity interface.\n     */\n    export interface ClientBookRefiner extends SearchRefiner {\n        SourceValue?: number;\n        Values?: ClientBookRefinerValue[];\n        }\n    \n    /**\n     * ClientBookRefinerValue entity interface.\n     */\n    export interface ClientBookRefinerValue extends SearchRefinerValue {\n        RefinerSourceValue?: number;\n        }\n    \n    /**\n     * ProductRelationType entity interface.\n     */\n    export interface ProductRelationType {\n        Name?: string;\n        RecordId: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ComponentInSlotRelation entity interface.\n     */\n    export interface ComponentInSlotRelation {\n        ComponentId: number;\n        SlotId: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductRules entity interface.\n     */\n    export interface ProductRules {\n        HasLinkedProducts: boolean;\n        IsSerialized: boolean;\n        IsActiveInSalesProcess: boolean;\n        IsBlocked: boolean;\n        DateOfBlocking: Date;\n        DateToActivate: Date;\n        DateToBlock: Date;\n        DefaultUnitOfMeasure?: string;\n        PriceKeyingRequirementValue: number;\n        QuantityKeyingRequirementValue: number;\n        MustKeyInComment: boolean;\n        CanQuantityBecomeNegative: boolean;\n        MustScaleItem: boolean;\n        CanPriceBeZero: boolean;\n        ProductId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LocalizedString entity interface.\n     */\n    export interface LocalizedString {\n        RecordId?: number;\n        LanguageId?: string;\n        TextId?: number;\n        Text?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LoyaltyCard entity interface.\n     */\n    export interface LoyaltyCard {\n        CardNumber?: string;\n        CardTenderTypeValue?: number;\n        CustomerAccount?: string;\n        LoyaltyGroups?: LoyaltyGroup[];\n        RewardPoints?: LoyaltyRewardPoint[];\n        LoyaltyEnrollmentDate?: Date;\n        LoyaltyEnrollmentDateLocal?: Date;\n        LoyaltyEnrollmentTime?: number;\n        LoyaltyEnrollmentTimeLocal?: number;\n        OmOperatingUnitId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductComponent entity interface.\n     */\n    export interface ProductComponent {\n        ProductId: number;\n        SlotId: number;\n        Product?: SimpleProduct;\n        AdditionalChargeForComponent?: number;\n        Behavior?: ProductBehavior;\n        Description?: string;\n        Dimensions?: ProductDimension[];\n        ItemId?: string;\n        Name?: string;\n        ProductTypeValue?: number;\n        Quantity?: number;\n        UnitOfMeasure?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SimpleProduct entity interface.\n     */\n    export interface SimpleProduct {\n        RecordId: number;\n        ItemId?: string;\n        Name?: string;\n        Description?: string;\n        ProductTypeValue: number;\n        DefaultUnitOfMeasure?: string;\n        BasePrice: number;\n        Price: number;\n        AdjustedPrice: number;\n        MasterProductId?: number;\n        Components?: ProductComponent[];\n        IsGiftCard?: boolean;\n        ProductNumber?: string;\n        Dimensions?: ProductDimension[];\n        Behavior?: ProductBehavior;\n        LinkedProducts?: SimpleLinkedProduct[];\n        PrimaryImageUrl?: string;\n        ItemTypeValue?: number;\n        ItemServiceTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductBehavior entity interface.\n     */\n    export interface ProductBehavior {\n        HasSerialNumber: boolean;\n        IsDiscountAllowed: boolean;\n        IsManualDiscountAllowed: boolean;\n        IsKitDisassemblyAllowed: boolean;\n        IsNegativeQuantityAllowed: boolean;\n        IsReturnAllowed: boolean;\n        IsSaleAtPhysicalStoresAllowed: boolean;\n        IsZeroSalePriceAllowed: boolean;\n        KeyInPriceValue: number;\n        KeyInQuantityValue: number;\n        MustKeyInComment: boolean;\n        MustPrintIndividualShelfLabelsForVariants: boolean;\n        MustPromptForSerialNumberOnlyAtSale: boolean;\n        MustWeighProductAtSale: boolean;\n        ValidFromDateForSaleAtPhysicalStores: Date;\n        ValidToDateForSaleAtPhysicalStores: Date;\n        IsStorageDimensionGroupLocationActive: boolean;\n        IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n        AllowNegativePhysicalInventory: boolean;\n        IsStockedProduct: boolean;\n        IsBlankSerialNumberAllowed?: boolean;\n        IsBlankSerialNumberReceiptAllowed?: boolean;\n        IsSerialNumberControlEnabled?: boolean;\n        IsStorageDimensionGroupLocationBlankIssueAllowed?: boolean;\n        IsSerialNumberRequired?: boolean;\n        DefaultQuantity?: number;\n        MaximumQuantity?: number;\n        MinimumQuantity?: number;\n        MultipleOfQuantity?: number;\n        InventoryLocationId?: string;\n        IsSaleAtSelfCheckoutRegistersAllowed?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SimpleLinkedProduct entity interface.\n     */\n    export interface SimpleLinkedProduct {\n        RecordId: number;\n        ItemId?: string;\n        Name?: string;\n        Description?: string;\n        ProductTypeValue: number;\n        DefaultUnitOfMeasure?: string;\n        BasePrice: number;\n        Price: number;\n        AdjustedPrice: number;\n        Quantity: number;\n        Behavior?: ProductBehavior;\n        Dimensions?: ProductDimension[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductSearchResult entity interface.\n     */\n    export interface ProductSearchResult {\n        ItemId?: string;\n        Name?: string;\n        Price: number;\n        PrimaryImageUrl?: string;\n        RecordId: number;\n        ProductNumber?: string;\n        TrackingId?: string;\n        AverageRating?: number;\n        TotalRatings?: number;\n        Description?: string;\n        BasePrice?: number;\n        MinVariantPrice?: number;\n        MaxVariantPrice?: number;\n        DisplayOrder?: number;\n        AttributeValues?: AttributeValue[];\n        IsMasterProduct?: boolean;\n        MasterProductId?: number;\n        DefaultUnitOfMeasure?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SearchSuggestion entity interface.\n     */\n    export interface SearchSuggestion {\n        Value?: string;\n        Value2?: CommerceProperty;\n        Value3?: CommerceProperty;\n        Value4?: CommerceProperty;\n        SuggestionType?: string;\n        Id?: string;\n        ImageUrl?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LoyaltyPointRedemptionEstimate entity interface.\n     */\n    export interface LoyaltyPointRedemptionEstimate {\n        MaxCurrencyValueOfLoyaltyPoints?: number;\n        RewardPointToRedeemList?: LoyaltyRewardPointLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LoyaltyGroup entity interface.\n     */\n    export interface LoyaltyGroup {\n        Description?: string;\n        Name?: string;\n        RecordId: number;\n        LoyaltyTiers?: LoyaltyTier[];\n        LoyaltyCardTiers?: LoyaltyCardTier[];\n        HighestActiveLoyaltyCardTier?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LoyaltyTier entity interface.\n     */\n    export interface LoyaltyTier {\n        Description?: string;\n        RecordId: number;\n        TierId?: string;\n        TierLevel: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LoyaltyCardTier entity interface.\n     */\n    export interface LoyaltyCardTier {\n        RecordId: number;\n        TierId?: string;\n        LoyaltyTierRecordId: number;\n        ValidFrom: Date;\n        ValidTo: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LoyaltyRewardPoint entity interface.\n     */\n    export interface LoyaltyRewardPoint {\n        IsRedeemable: boolean;\n        RewardPointCurrency?: string;\n        RewardPointTypeValue: number;\n        Description?: string;\n        RewardPointId?: string;\n        IssuedPoints?: number;\n        UsedPoints?: number;\n        ExpiredPoints?: number;\n        ActivePoints?: number;\n        PointsExpiringSoon?: number;\n        UnvestedPoints?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LoyaltyCardTransaction entity interface.\n     */\n    export interface LoyaltyCardTransaction {\n        ChannelName?: string;\n        EntryDateTime: Date;\n        EntryTypeValue: number;\n        ExpirationDate: Date;\n        RewardPointAmountQuantity: number;\n        TransactionId?: string;\n        }\n    \n    /**\n     * GiftCard entity interface.\n     */\n    export interface GiftCard {\n        Id?: string;\n        Balance?: number;\n        BalanceCurrencyCode?: string;\n        BalanceInCardCurrency?: number;\n        CardCurrencyCode?: string;\n        GiftCardIssueAmount?: number;\n        GiftCardActiveFrom?: Date;\n        GiftCardExpireDate?: Date;\n        GiftCardHistoryDetails?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OperationPermission entity interface.\n     */\n    export interface OperationPermission {\n        OperationName?: string;\n        OperationId?: number;\n        CheckUserAccess?: boolean;\n        AllowAnonymousAccess?: boolean;\n        AllowCustomerAccess?: boolean;\n        AllowApplicationAccess?: boolean;\n        IsEnabledForTaskManagement?: boolean;\n        Permissions?: string[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * StateProvinceInfo entity interface.\n     */\n    export interface StateProvinceInfo {\n        CountryRegionId?: string;\n        StateId?: string;\n        StateName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TransactionLog entity interface.\n     */\n    export interface TransactionLog extends Transaction {\n        }\n    \n    /**\n     * KitTransaction entity interface.\n     */\n    export interface KitTransaction extends TransactionLog {\n        KitTransactionLines?: KitTransactionLine[];\n        }\n    \n    /**\n     * SalesTaxGroup entity interface.\n     */\n    export interface SalesTaxGroup {\n        RecordId: number;\n        TaxGroup?: string;\n        TaxGroupName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductProperty entity interface.\n     */\n    export interface ProductProperty {\n        ValueString?: string;\n        UnitText?: string;\n        PropertyTypeValue?: number;\n        KeyName?: string;\n        FriendlyName?: string;\n        RecordId?: number;\n        IsDimensionProperty?: boolean;\n        AttributeValueId?: number;\n        SwatchImageUrl?: string;\n        SwatchColorHexCode?: string;\n        GroupId?: number;\n        GroupTypeValue?: number;\n        GroupName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        ProductId?: number;\n        CatalogId?: number;\n        }\n    \n    /**\n     * ProductCompositionInformation entity interface.\n     */\n    export interface ProductCompositionInformation {\n        VariantInformation?: ProductVariantInformation;\n        KitDefinition?: KitDefinition;\n        }\n    \n    /**\n     * ProductVariantInformation entity interface.\n     */\n    export interface ProductVariantInformation {\n        ActiveVariantProductId: number;\n        Variants?: ProductVariant[];\n        Dimensions?: ProductDimensionSet[];\n        ItemId?: string;\n        MasterProductId?: number;\n        }\n    \n    /**\n     * ProductChangeTrackingInformation entity interface.\n     */\n    export interface ProductChangeTrackingInformation {\n        ModifiedDateTime: Date;\n        ChangeActionValue?: number;\n        RequestedActionValue?: number;\n        }\n    \n    /**\n     * ProductDimensionSet entity interface.\n     */\n    export interface ProductDimensionSet {\n        DimensionKey?: string;\n        DimensionValues?: ProductDimensionValueSet[];\n        }\n    \n    /**\n     * ProductDimensionValueSet entity interface.\n     */\n    export interface ProductDimensionValueSet {\n        DimensionId?: string;\n        DimensionValue?: string;\n        VariantSet?: number[];\n        Language?: string;\n        SwatchImageUrl?: string;\n        SwatchColorHexCode?: string;\n        SwatchRefinerGroupValue?: string;\n        SwatchRefinerGroupTranslation?: string;\n        SwatchRefinerGroupImageUrl?: string;\n        SwatchRefinerGroupColorHexCode?: string;\n        }\n    \n    /**\n     * RichMediaLocations entity interface.\n     */\n    export interface RichMediaLocations {\n        Items?: RichMediaLocationsRichMediaLocation[];\n        }\n    \n    /**\n     * RichMediaLocationsRichMediaLocation entity interface.\n     */\n    export interface RichMediaLocationsRichMediaLocation {\n        Url?: string;\n        AltText?: string;\n        IsSelfHosted?: boolean;\n        IsDefault?: boolean;\n        Priority?: number;\n        }\n    \n    /**\n     * KitDefinition entity interface.\n     */\n    export interface KitDefinition {\n        DisassembleAtRegister: boolean;\n        KitLineDefinitions?: KitLineDefinition[];\n        KitLineProductToVariantMap?: ComponentKitVariantSet[];\n        KitVariantToComponentMap?: KitVariantContent[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ComponentKitVariantSet entity interface.\n     */\n    export interface ComponentKitVariantSet {\n        KitLineProductId: number;\n        KitVariantIdList?: number[];\n        }\n    \n    /**\n     * KitLineDefinition entity interface.\n     */\n    export interface KitLineDefinition {\n        ComponentProductId: number;\n        KitLineIdentifier: number;\n        SubstituteProductIds?: number[];\n        ComponentProperties?: KitLineProductProperty[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * KitLineProductProperty entity interface.\n     */\n    export interface KitLineProductProperty {\n        KitLineIdentifier: number;\n        ProductId: number;\n        Unit?: string;\n        Quantity: number;\n        Charge: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * KitComponentKey entity interface.\n     */\n    export interface KitComponentKey {\n        KitLineIdentifier: number;\n        DistinctProductId: number;\n        }\n    \n    /**\n     * KitVariantContent entity interface.\n     */\n    export interface KitVariantContent {\n        KitVariantId: number;\n        KitComponentKeyList?: KitComponentKey[];\n        }\n    \n    /**\n     * ProductLookupClause entity interface.\n     */\n    export interface ProductLookupClause {\n        ItemId?: string;\n        InventDimensionId?: string;\n        Barcode?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductAssortmentInterval entity interface.\n     */\n    export interface ProductAssortmentInterval {\n        ProductId?: number;\n        ValidFrom?: Date;\n        ValidTo?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OrgUnitLocation entity interface.\n     */\n    export interface OrgUnitLocation {\n        Contacts?: OrgUnitContact[];\n        ChannelId?: number;\n        Latitude?: number;\n        Longitude?: number;\n        OrgUnitName?: string;\n        OrgUnitNumber?: string;\n        Address?: string;\n        Street?: string;\n        StreetNumber?: string;\n        City?: string;\n        DistrictName?: string;\n        BuildingCompliment?: string;\n        Postbox?: string;\n        Zip?: string;\n        County?: string;\n        CountyName?: string;\n        State?: string;\n        StateName?: string;\n        Country?: string;\n        Distance?: number;\n        InventoryLocationId?: string;\n        InventorySiteId?: string;\n        IsPickupLocation?: boolean;\n        IsShippingLocation?: boolean;\n        PostalAddressId?: number;\n        OpenFrom?: number;\n        OpenTo?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OrgUnitContact entity interface.\n     */\n    export interface OrgUnitContact {\n        ChannelId: number;\n        Locator?: string;\n        LocatorExtension?: string;\n        ContactTypeValue: number;\n        IsPrimary: boolean;\n        IsPrivate: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SalesLineDeliveryOption entity interface.\n     */\n    export interface SalesLineDeliveryOption {\n        SalesLineId?: string;\n        DeliveryOptions?: DeliveryOption[];\n        }\n    \n    /**\n     * DeliveryOption entity interface.\n     */\n    export interface DeliveryOption {\n        ChargeGroup?: string;\n        Code?: string;\n        Description?: string;\n        RecordId: number;\n        DeliveryChargeLines?: DeliveryChargeLine[];\n        TotalChargeAmount?: number;\n        ShippingChargeAmount?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelDeliveryOption entity interface.\n     */\n    export interface ChannelDeliveryOption {\n        ChannelId: number;\n        DeliveryOptions?: DeliveryOption[];\n        }\n    \n    /**\n     * ChannelIdentity entity interface.\n     */\n    export interface ChannelIdentity {\n        ChannelType: ExtensibleRetailChannelType;\n        Name?: string;\n        OperatingUnitNumber?: string;\n        DataAreaId?: string;\n        RecordId: number;\n        InventoryLocationId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ExtensibleRetailChannelType entity interface.\n     */\n    export interface ExtensibleRetailChannelType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ChannelProfileProperty entity interface.\n     */\n    export interface ChannelProfileProperty {\n        Key: number;\n        Value?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelConfiguration entity interface.\n     */\n    export interface ChannelConfiguration {\n        RecordId: number;\n        ChannelNaturalId?: string;\n        MinimumDepositPercentage: number;\n        QuoteExpirationDays: number;\n        PickupDeliveryModeCode?: string;\n        CarryoutDeliveryModeCode?: string;\n        CancellationChargePercentage: number;\n        InventLocation?: string;\n        InventLocationDataAreaId?: string;\n        BingMapsApiKey?: string;\n        BingMapsEnabled: boolean;\n        Currency?: string;\n        CatalogDefaultImageTemplate?: string;\n        CompanyCurrency?: string;\n        PriceIncludesSalesTax: boolean;\n        CountryRegionId?: string;\n        ChannelCountryRegionISOCode?: string;\n        DefaultLanguageId?: string;\n        TimeZoneInfoId?: string;\n        EmailDeliveryModeCode?: string;\n        GiftCardItemId?: string;\n        EnableProductRecommendations: boolean;\n        RefundableShippingAmountWithoutApproval: number;\n        RefundShippingCharges: boolean;\n        ReceiptSettingsValue: number;\n        CustomerAttributeGroupId: number;\n        ClientBookAttributeGroupId: number;\n        NotificationRefreshInterval: number;\n        AllowExchangeOnReturnOrders?: boolean;\n        FiscalRegistrationProcessId?: string;\n        IsInventoryAutomaticValidationEnabled: boolean;\n        HideSystemInventoryInStockCount: boolean;\n        EnablePriceChangeTracking: boolean;\n        ProfileProperties?: ChannelProfileProperty[];\n        Properties?: ChannelProperty[];\n        Languages?: ChannelLanguage[];\n        UseAdvancedAutoCharges?: boolean;\n        UseRTSForOnlineOrderCreation?: boolean;\n        IsWarrantyAutoPromptEnabled?: boolean;\n        EnableProductRatingsForRetailStores?: boolean;\n        EnableFetchingPickingListsForPickingAndReceiving?: boolean;\n        EnableReturnsForMultipleOrderInvoices?: boolean;\n        EnableAnonymousOrderLookupByChannelReferenceId?: boolean;\n        VoidSuspendedTransactionsOnCloseShift?: number;\n        EnableOmniChannelPayments?: boolean;\n        UseAdvancedCashManagement?: boolean;\n        EnableFiscalRegistrationStorageBackup?: boolean;\n        UseSalesReceiptAsDefaultReceiptTypeInJournal?: boolean;\n        SalesOrderHeaderAttributeGroups?: number[];\n        SalesOrderLinesAttributeGroups?: number[];\n        CustomerAddressBooks?: StoreAddressBook[];\n        EnableReturnPolicies?: boolean;\n        InventAvailabilityCalculationMode?: string;\n        IsPriceInclusiveTaxExemptCalculationEnabled?: boolean;\n        EnableValidationOfSerialNumbersForInStoreReturns?: boolean;\n        DisplayNonRetailOrdersInEcommerceOrderHistory?: boolean;\n        EnableCopilotCustomerInsights?: boolean;\n        EnableCopilotProductInsights?: boolean;\n        EnableCopilotReportInsights?: boolean;\n        EnableStoreCommerceCopilot?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelProperty entity interface.\n     */\n    export interface ChannelProperty {\n        Name?: string;\n        Value?: string;\n        Channel?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelLanguage entity interface.\n     */\n    export interface ChannelLanguage {\n        LanguageId?: string;\n        IsDefault: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelDeliveryOptionConfiguration entity interface.\n     */\n    export interface ChannelDeliveryOptionConfiguration {\n        PickupDeliveryModeCodes?: string[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * NonSalesTransaction entity interface.\n     */\n    export interface NonSalesTransaction extends Transaction {\n        ReasonCodeLines?: ReasonCodeLine[];\n        Amount?: number;\n        ForeignCurrency?: string;\n        TenderTypeId?: string;\n        OpenDrawer?: boolean;\n        DenominationDetails?: DenominationDetail[];\n        }\n    \n    /**\n     * DropAndDeclareTransaction entity interface.\n     */\n    export interface DropAndDeclareTransaction extends Transaction {\n        TenderDetails?: TenderDetail[];\n        ReasonCodeLines?: ReasonCodeLine[];\n        OpenDrawer?: boolean;\n        }\n    \n    /**\n     * ProductSearchCriteria entity interface.\n     */\n    export interface ProductSearchCriteria {\n        Ids?: number[];\n        CategoryIds?: number[];\n        IncludeProductsFromDescendantCategories?: boolean;\n        SearchCondition?: string;\n        SkipVariantExpansion?: boolean;\n        IncludeAttributes?: boolean;\n        Barcodes?: string[];\n        ItemIds?: ProductLookupClause[];\n        Refinement?: ProductRefinerValue[];\n        CustomerAccountNumber?: string;\n        RecommendationListId?: string;\n        DownloadProductData?: boolean;\n        Context?: ProjectionDomain;\n        Language?: string;\n        IsOnline?: boolean;\n        DataLevelValue?: number;\n        }\n    \n    /**\n     * ChangedProductsSearchCriteria entity interface.\n     */\n    export interface ChangedProductsSearchCriteria {\n        SynchronizationToken?: string;\n        Context?: ProjectionDomain;\n        AsListings?: boolean;\n        Session?: ReadChangedProductsSession;\n        DataLevelValue?: number;\n        }\n    \n    /**\n     * EmployeeActivitySearchCriteria entity interface.\n     */\n    export interface EmployeeActivitySearchCriteria {\n        FromDateTimeOffset?: Date;\n        ToDateTimeOffset?: Date;\n        StoreNumber?: string;\n        EmployeeActivityTypeValues?: number[];\n        DataLevelValue?: number;\n        }\n    \n    /**\n     * SearchSuggestionCriteria entity interface.\n     */\n    export interface SearchSuggestionCriteria {\n        ProductSearchCriteria?: ProductSearchCriteria;\n        CustomerSearchCriteria?: CustomerSearchCriteria;\n        SuggestionType?: string;\n        HitPrefix?: string;\n        HitSuffix?: string;\n        }\n    \n    /**\n     * OrderOriginator entity interface.\n     */\n    export interface OrderOriginator {\n        TransactionId?: string;\n        SalesId?: string;\n        StaffId?: string;\n        StaffName?: string;\n        CustomerId?: string;\n        CustomerName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OrderOriginatorSearchCriteria entity interface.\n     */\n    export interface OrderOriginatorSearchCriteria {\n        TransactionIds?: string[];\n        SalesIds?: string[];\n        SearchLocationValue?: number;\n        DataLevelValue?: number;\n        }\n    \n    /**\n     * SalesOrdersLookupCriteria entity interface.\n     */\n    export interface SalesOrdersLookupCriteria {\n        SalesOrderLookups?: SalesOrderLookup[];\n        }\n    \n    /**\n     * CartLineDeliveryPreference entity interface.\n     */\n    export interface CartLineDeliveryPreference {\n        LineId?: string;\n        DeliveryPreferenceTypeValues?: number[];\n        }\n    \n    /**\n     * CartLinePromotion entity interface.\n     */\n    export interface CartLinePromotion {\n        LineId?: string;\n        Promotions?: string[];\n        }\n    \n    /**\n     * ProductVariant entity interface.\n     */\n    export interface ProductVariant {\n        ItemId?: string;\n        MasterProductId: number;\n        InventoryDimensionId?: string;\n        AdjustedPrice: number;\n        BasePrice: number;\n        Price: number;\n        Color?: string;\n        Style?: string;\n        Size?: string;\n        Configuration?: string;\n        ColorId?: string;\n        StyleId?: string;\n        SizeId?: string;\n        ConfigId?: string;\n        VariantId?: string;\n        Images?: RichMediaLocations[];\n        DistinctProductVariantId?: number;\n        ProductNumber?: string;\n        PropertiesAsList?: ProductPropertyTranslation[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * HardwareProfilePrinter entity interface.\n     */\n    export interface HardwareProfilePrinter {\n        ProfileId?: string;\n        DeviceTypeValue?: number;\n        DeviceName?: string;\n        DeviceMake?: string;\n        DeviceModel?: string;\n        DeviceDescription?: string;\n        CharacterSet?: number;\n        ReceiptProfileId?: string;\n        BinaryConversion?: boolean;\n        DocInsertRemovalTimeout?: number;\n        Logo?: string;\n        LogoAlignment?: string;\n        KeepConnectionOpen?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * HardwareProfileScanner entity interface.\n     */\n    export interface HardwareProfileScanner {\n        ProfileId?: string;\n        DeviceTypeValue?: number;\n        DeviceName?: string;\n        DeviceDescription?: string;\n        DecodeData?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * HardwareProfileCashDrawer entity interface.\n     */\n    export interface HardwareProfileCashDrawer {\n        ProfileId?: string;\n        DeviceTypeValue?: number;\n        DeviceName?: string;\n        DeviceDescription?: string;\n        DeviceMake?: string;\n        DeviceModel?: string;\n        IsSharedShiftDrawer?: boolean;\n        DrawerKeepConnectionOpen?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TillLayout entity interface.\n     */\n    export interface TillLayout {\n        CashChangerLayoutXml?: string;\n        CustomerLayoutId?: string;\n        CustomerLayoutXml?: string;\n        Height?: number;\n        LayoutId?: string;\n        LayoutTypeValue?: number;\n        LayoutXml?: string;\n        LayoutXmlPortrait?: string;\n        Name?: string;\n        ReceiptId?: string;\n        ReceiptItemsLayoutXml?: string;\n        ReceiptPaymentLayoutXml?: string;\n        TotalId?: string;\n        TotalsLayoutXml?: string;\n        Width?: number;\n        RecordId?: number;\n        StartScreen?: number;\n        ButtonGridZones?: ButtonGridZone[];\n        ImageZones?: ImageZone[];\n        ReportZones?: ReportZone[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SalesInvoice entity interface.\n     */\n    export interface SalesInvoice {\n        RecordId?: number;\n        ChannelId?: number;\n        Id?: string;\n        SalesId?: string;\n        SalesType?: string;\n        InvoiceDate?: Date;\n        DueDate?: Date;\n        CurrencyCode?: string;\n        InvoiceSubtotal?: number;\n        TotalCharges?: number;\n        TotalTaxAmount?: number;\n        TotalLineDiscount?: number;\n        TotalDiscount?: number;\n        Amount?: number;\n        AmountPaid?: number;\n        AmountBalance?: number;\n        Account?: string;\n        Name?: string;\n        TotalManualDiscountPercentage?: number;\n        TotalManualDiscountAmount?: number;\n        SalesInvoiceLine?: SalesInvoiceLine[];\n        ChargeLines?: ChargeLine[];\n        TenderLines?: TenderLine[];\n        DeliveryModeChargeAmount?: number;\n        OrderAccount?: string;\n        OrderedByCustomerName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OrderInvoice entity interface.\n     */\n    export interface OrderInvoice {\n        Id?: string;\n        CustomerAccountNumber?: string;\n        CustomerName?: string;\n        InvoiceDate?: Date;\n        TotalAmount?: number;\n        AmountPaid?: number;\n        AmountBalance?: number;\n        InvoiceTypeValue?: number;\n        CurrencyCode?: string;\n        InvoiceDueDate?: Date;\n        InvoicePaidStatusValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TaxOverride entity interface.\n     */\n    export interface TaxOverride {\n        Code?: string;\n        SourceTaxGroup?: string;\n        DestinationTaxGroup?: string;\n        SourceItemTaxGroup?: string;\n        DestinationItemTaxGroup?: string;\n        ChannelId?: number;\n        AdditionalDescription?: string;\n        Status?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TenderType entity interface.\n     */\n    export interface TenderType {\n        Function: number;\n        TenderTypeId?: string;\n        Name?: string;\n        OperationId?: number;\n        OperationName?: string;\n        ChangeTenderTypeId?: string;\n        AboveMinimumChangeAmount?: number;\n        AboveMinimumChangeTenderTypeId?: string;\n        OpenDrawer?: boolean;\n        UseSignatureCaptureDevice?: boolean;\n        MinimumSignatureCaptureAmount?: number;\n        IsOvertenderAllowed?: boolean;\n        IsUndertenderAllowed?: boolean;\n        MaximumOvertenderAmount?: number;\n        MaximumUndertenderAmount?: number;\n        MaximumAmountPerTransaction?: number;\n        MaximumAmountPerLine?: number;\n        MinimumAmountPerTransaction?: number;\n        MinimumAmountPerLine?: number;\n        RoundOff?: number;\n        CountingRequired?: number;\n        TakenToBank?: number;\n        TakenToSafe?: number;\n        ConnectorId?: string;\n        GiftCardItem?: string;\n        GiftCardCashoutOutThreshold?: number;\n        ChangeLineOnReceipt?: string;\n        HideCardInputDetails?: boolean;\n        CashDrawerLimitEnabled?: boolean;\n        CashDrawerLimit?: number;\n        RestrictReturnsWithoutReceipt?: boolean;\n        HasTenderDiscount?: boolean;\n        DefaultCardTypeId?: string;\n        UseForDeclareStartAmount?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReasonCode entity interface.\n     */\n    export interface ReasonCode {\n        InputRequired: boolean;\n        LinkedReasonCodeId?: string;\n        MaximumLength: number;\n        MaximumValue: number;\n        MinimumLength: number;\n        MinimumValue: number;\n        OncePerTransaction: boolean;\n        PrintInputNameOnReceipt: boolean;\n        PrintInputToReceipt: boolean;\n        PrintPromptToReceipt: boolean;\n        Prompt?: string;\n        RandomFactor: number;\n        RetailUseReasonCode: boolean;\n        ReasonCodeId?: string;\n        Description?: string;\n        InputTypeValue?: number;\n        ActivityValue?: number;\n        IsMultiLineText?: boolean;\n        ReasonSubCodes?: ReasonSubCode[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReportDataSet entity interface.\n     */\n    export interface ReportDataSet {\n        ReportId?: string;\n        Parameters?: CommerceProperty[];\n        Locale?: string;\n        Output?: ReportRow[];\n        HasTotalRow?: boolean;\n        HasDisclaimer?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ZipCodeInfo entity interface.\n     */\n    export interface ZipCodeInfo {\n        ZipPostalCode?: string;\n        StreetName?: string;\n        TimeZone?: number;\n        CountryRegionId?: string;\n        StateId?: string;\n        CountyId?: string;\n        CityName?: string;\n        CityAlias?: string;\n        District?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReasonCodeRequirement entity interface.\n     */\n    export interface ReasonCodeRequirement {\n        ReasonCodeId?: string;\n        SourceId?: string;\n        TableRefTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * QueryResultSettings entity interface.\n     */\n    export interface QueryResultSettings {\n        Paging?: PagingInfo;\n        Sorting?: SortingInfo;\n        }\n    \n    /**\n     * SortingInfo entity interface.\n     */\n    export interface SortingInfo {\n        Columns?: SortColumn[];\n        }\n    \n    /**\n     * SortColumn entity interface.\n     */\n    export interface SortColumn {\n        ColumnName?: string;\n        IsDescending?: boolean;\n        }\n    \n    /**\n     * PagingInfo entity interface.\n     */\n    export interface PagingInfo {\n        NextPageToken?: string;\n        Top?: number;\n        Skip?: number;\n        }\n    \n    /**\n     * ProductPropertyTranslation entity interface.\n     */\n    export interface ProductPropertyTranslation {\n        TranslationLanguage?: string;\n        TranslatedProperties?: ProductProperty[];\n        }\n    \n    /**\n     * NumberSequenceSeedData entity interface.\n     */\n    export interface NumberSequenceSeedData {\n        DataTypeValue?: number;\n        DataValue?: number;\n        LastTransactionDataValue?: number;\n        LastTransactionCreatedDateTime?: Date;\n        LastTransactionId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReceiptNumberResetInfo entity interface.\n     */\n    export interface ReceiptNumberResetInfo {\n        ValidFrom?: Date;\n        ValidTo?: Date;\n        ResetDate?: Date;\n        TypeValue?: number;\n        Enabled?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DeviceActivationResult entity interface.\n     */\n    export interface DeviceActivationResult {\n        Device?: Device;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PurchaseHistory entity interface.\n     */\n    export interface PurchaseHistory {\n        DatePurchased?: Date;\n        ImageUrl?: string;\n        ItemId?: string;\n        ProductId?: number;\n        ProductName?: string;\n        ReceiptId?: string;\n        SalesId?: string;\n        ChannelId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PurchaseHistorySearchCriteria entity interface.\n     */\n    export interface PurchaseHistorySearchCriteria {\n        StartDate?: Date;\n        EndDate?: Date;\n        CustomerAccountNumber?: string;\n        ItemId?: string;\n        ProductNameFilter?: string;\n        ReceiptId?: string;\n        }\n    \n    /**\n     * Node entity interface.\n     */\n    export interface Node {\n        ParentScopeId?: string;\n        ParentSequence?: number;\n        Id?: string;\n        Sequence?: number;\n        Description?: string;\n        ScreenshotUri?: string;\n        }\n    \n    /**\n     * Line entity interface.\n     */\n    export interface Line {\n        ChildrenIds?: number[];\n        Id?: number;\n        Name?: string;\n        Description?: string;\n        IsLinked?: boolean;\n        LineMetadataId?: number;\n        Artifacts?: ArtifactSummary[];\n        MetadataPropertyValues?: MetadataPropertyValue[];\n        }\n    \n    /**\n     * MetadataText entity interface.\n     */\n    export interface MetadataText {\n        Id?: string;\n        Text?: string;\n        }\n    \n    /**\n     * MetadataHypertextLink entity interface.\n     */\n    export interface MetadataHypertextLink {\n        Id?: string;\n        DisplayName?: string;\n        Url?: string;\n        }\n    \n    /**\n     * Scope entity interface.\n     */\n    export interface Scope extends Node {\n        Name?: string;\n        ScopeTypeValue: number;\n        Children?: Node[];\n        ActiveCount: number;\n        IsForm?: boolean;\n        }\n    \n    /**\n     * Framework entity interface.\n     */\n    export interface Framework {\n        Lines?: Line[];\n        Id?: number;\n        Name?: string;\n        Access?: string;\n        Hierarchy?: Line[];\n        Publisher?: string;\n        }\n    \n    /**\n     * UserAction entity interface.\n     */\n    export interface UserAction extends Node {\n        SystemGenerated?: boolean;\n        GlobalId?: string;\n        Annotations?: Annotation[];\n        }\n    \n    /**\n     * TaskUserAction entity interface.\n     */\n    export interface TaskUserAction extends UserAction {\n        UserActionTypeValue: number;\n        Name?: string;\n        Comment?: string;\n        TaskId?: string;\n        }\n    \n    /**\n     * FormUserAction entity interface.\n     */\n    export interface FormUserAction extends UserAction {\n        FormId?: string;\n        ControlLabel?: string;\n        }\n    \n    /**\n     * CommandUserAction entity interface.\n     */\n    export interface CommandUserAction extends FormUserAction {\n        ReturnTypeValue: number;\n        CommandName?: string;\n        ControlName?: string;\n        ControlType?: string;\n        Arguments?: CommandArgument[];\n        LabelId?: string;\n        ReturnValue?: string;\n        }\n    \n    /**\n     * Annotation entity interface.\n     */\n    export interface Annotation {\n        Description?: string;\n        }\n    \n    /**\n     * Recording entity interface.\n     */\n    export interface Recording {\n        Scopes?: Scope[];\n        FormContextEntries?: FormContextDictionaryEntry[];\n        RootScope?: Scope;\n        Name?: string;\n        Description?: string;\n        }\n    \n    /**\n     * FormContextDictionaryEntry entity interface.\n     */\n    export interface FormContextDictionaryEntry {\n        FormId?: string;\n        FormContext?: FormContext;\n        }\n    \n    /**\n     * ProductVariantResolutionContext entity interface.\n     */\n    export interface ProductVariantResolutionContext {\n        }\n    \n    /**\n     * ProductVariantResolutionOnKitSelectionContext entity interface.\n     */\n    export interface ProductVariantResolutionOnKitSelectionContext extends ProductVariantResolutionContext {\n        SelectedComponents?: ComponentInSlotRelation[];\n        SlotId?: number;\n        }\n    \n    /**\n     * WarehouseLocation entity interface.\n     */\n    export interface WarehouseLocation {\n        LocationId?: string;\n        IsLicensePlateControlled: boolean;\n        ProfileId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalTransaction entity interface.\n     */\n    export interface FiscalTransaction {\n        CreatedDateTime?: Date;\n        StoreId?: string;\n        TerminalId?: string;\n        TransactionId?: string;\n        TransDateTime?: Date;\n        LineNumber?: number;\n        RegisterResponse?: string;\n        ReceiptCopy?: boolean;\n        RecordGUID?: string;\n        RegisterStoreId?: string;\n        RegisterTerminalId?: string;\n        StaffId?: string;\n        RegistrationStatusValue?: number;\n        RegistrationProcessId?: string;\n        ConnectorGroup?: string;\n        ConnectorName?: string;\n        ConnectorFunctionalityProfileId?: string;\n        RegisterInfo?: string;\n        DocumentNumber?: string;\n        RegistrationTypeValue?: number;\n        ServiceName?: string;\n        CountryRegionIsoCode?: string;\n        TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n        SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n        ReasonCodeLines?: ReasonCodeLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FulfillmentLine entity interface.\n     */\n    export interface FulfillmentLine {\n        SalesId?: string;\n        SalesPersonStoreId?: string;\n        SalesPersonId?: string;\n        SalesPersonFirstName?: string;\n        SalesPersonLastName?: string;\n        SalesLineNumber?: number;\n        ReceiptId?: string;\n        ChannelReferenceId?: string;\n        CustomerId?: string;\n        CustomerName?: string;\n        EmailAddress?: string;\n        DeliveryModeCode?: string;\n        DocumentStatusValue?: number;\n        FulfillmentDeliveryType?: FulfillmentLineDeliveryType;\n        DeliveryTypeValue?: number;\n        QuantityOrdered?: number;\n        QuantityNotProcessed?: number;\n        QuantityReserved?: number;\n        QuantityPicked?: number;\n        QuantityPacked?: number;\n        QuantityInvoiced?: number;\n        QuantityNotInvoiced?: number;\n        QuantityNotPacked?: number;\n        QuantityNotPicked?: number;\n        StoreInventoryTotalQuantity?: number;\n        StoreInventoryReservedQuantity?: number;\n        StoreInventoryOrderedQuantity?: number;\n        ItemId?: string;\n        ProductId?: number;\n        ProductVariant?: string;\n        ItemName?: string;\n        SerialNumber?: string;\n        FulfillmentStatus?: FulfillmentLineStatus;\n        FulfillmentStatusValue?: number;\n        UnitOfMeasureSymbol?: string;\n        RequestedShipDate?: Date;\n        RequestedDeliveryDate?: Date;\n        RequestedReceiptDate?: Date;\n        PickupTimeslotStartDateTime?: Date;\n        PickupTimeslotEndDateTime?: Date;\n        CreatedDate?: Date;\n        TotalAmount?: number;\n        Balance?: number;\n        ShippingAddress?: Address;\n        DetailedOrderStatusValue?: number;\n        DetailedLineStatusValue?: number;\n        ChannelTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FulfillmentLineSearchCriteria entity interface.\n     */\n    export interface FulfillmentLineSearchCriteria {\n        CustomerId?: string;\n        CustomerName?: string;\n        EmailAddress?: string;\n        SalesId?: string;\n        OrderCreatedStartDate?: Date;\n        OrderCreatedEndDate?: Date;\n        ReceiptId?: string;\n        StoreId?: string;\n        ChannelReferenceId?: string;\n        RequestedReceiptStartDate?: Date;\n        RequestedReceiptEndDate?: Date;\n        RequestedDeliveryStartDate?: Date;\n        RequestedDeliveryEndDate?: Date;\n        FulfillmentStatusValues?: number[];\n        DeliveryModeCode?: string;\n        WarehouseId?: string;\n        LoyaltyCardNumber?: string;\n        CustomerPhoneNumber?: string;\n        DeliveryTypeValue?: number;\n        CustomFilters?: SearchFilter[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Comment entity interface.\n     */\n    export interface Comment {\n        RecordId?: number;\n        AuthorStaffId?: string;\n        AuthorName?: string;\n        Text?: string;\n        CreatedDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AddressPurpose entity interface.\n     */\n    export interface AddressPurpose {\n        RecordId: number;\n        AddressType: number;\n        Name?: string;\n        Description?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DeliveryChargeLine entity interface.\n     */\n    export interface DeliveryChargeLine {\n        ChargeCode?: string;\n        CurrencyCode?: string;\n        CalculatedAmount: number;\n        Description?: string;\n        IsRefundable: boolean;\n        IsShipping: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ExtensionPackageDefinition entity interface.\n     */\n    export interface ExtensionPackageDefinition {\n        Name?: string;\n        Publisher?: string;\n        IsEnabled: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReturnPolicy entity interface.\n     */\n    export interface ReturnPolicy {\n        RecordId: number;\n        TenderTypePolicies?: TenderTypePolicy[];\n        IsManagerOverrideEnabled: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TenderTypeAmount entity interface.\n     */\n    export interface TenderTypeAmount {\n        TenderTypeId?: string;\n        Amount: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FeatureState entity interface.\n     */\n    export interface FeatureState {\n        Name?: string;\n        IsEnabled?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Warranty entity interface.\n     */\n    export interface Warranty extends SimpleProduct {\n        DurationUnitValue?: number;\n        Duration?: number;\n        ApplicablePriceRangeBaseTypeValue?: number;\n        ApplicablePriceRangeMin?: number;\n        ApplicablePriceRangeMax?: number;\n        }\n    \n    /**\n     * RecallInvoicedSalesLineLookup entity interface.\n     */\n    export interface RecallInvoicedSalesLineLookup {\n        InvoicedLineId: number;\n        Quantity: number;\n        SerialNumber?: string;\n        IgnoreSerialNumberMismatch: boolean;\n        ReasonCodeLines?: ReasonCodeLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * WarrantyGroup entity interface.\n     */\n    export interface WarrantyGroup {\n        Warranties?: Warranty[];\n        RecordId?: number;\n        GroupName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductWarrantiesMapping entity interface.\n     */\n    export interface ProductWarrantiesMapping {\n        WarrantyGroups?: WarrantyGroup[];\n        WarrantableProductId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FulfillmentLineContextualOperationsMap entity interface.\n     */\n    export interface FulfillmentLineContextualOperationsMap {\n        FulfillmentLine?: FulfillmentLine;\n        ApplicableOperationsValues?: number[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * UserAlert entity interface.\n     */\n    export interface UserAlert {\n        AlertSourceIdValue?: number;\n        LocalizedMessage?: string;\n        IsBlocking?: boolean;\n        }\n    \n    /**\n     * CartLineUserAlerts entity interface.\n     */\n    export interface CartLineUserAlerts {\n        LineIndex?: number;\n        LineNumber?: number;\n        UserAlerts?: UserAlert[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FulfillmentLineUserAlerts entity interface.\n     */\n    export interface FulfillmentLineUserAlerts {\n        SalesId?: string;\n        SalesLineNumber?: number;\n        UserAlerts?: UserAlert[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * BusinessPartnerProspect entity interface.\n     */\n    export interface BusinessPartnerProspect {\n        FirstName?: string;\n        LastName?: string;\n        CompanyName?: string;\n        Address?: Address;\n        JobTitle?: string;\n        Department?: string;\n        CompanySize?: number;\n        Comments?: string;\n        LastOperationId?: string;\n        ProspectTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelSearchCriteria entity interface.\n     */\n    export interface ChannelSearchCriteria {\n        SearchLocationValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * BusinessPartnerOperation entity interface.\n     */\n    export interface BusinessPartnerOperation {\n        TypeValue?: number;\n        StatusValue?: number;\n        Value?: string;\n        Description?: string;\n        CreatedDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * BusinessPartnerOperationRequest entity interface.\n     */\n    export interface BusinessPartnerOperationRequest {\n        TypeValue?: number;\n        StatusValue?: number;\n        CreatedDateTime?: Date;\n        Details?: BusinessPartnerOperationRequestDetails;\n        UserId?: string;\n        UserFirstName?: string;\n        UserLastName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReceiptTypesByFormatType entity interface.\n     */\n    export interface ReceiptTypesByFormatType {\n        ReceiptOutputFormatType?: ReceiptOutputFormatType;\n        ReceiptTypesValues?: number[];\n        }\n    \n    /**\n     * InventoryJournalNameSearchCriteria entity interface.\n     */\n    export interface InventoryJournalNameSearchCriteria {\n        JournalNameIds?: string[];\n        DocumentTypeValues?: number[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AssortedProductIdentity entity interface.\n     */\n    export interface AssortedProductIdentity {\n        ProductId?: number;\n        IsRemoteProduct?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductExistenceId entity interface.\n     */\n    export interface ProductExistenceId {\n        ProductId?: number;\n        LanguageId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductExistenceCriteria entity interface.\n     */\n    export interface ProductExistenceCriteria {\n        ChannelId?: number;\n        CatalogId?: number;\n        Ids?: ProductExistenceId[];\n        }\n    \n    /**\n     * CountryRegion entity interface.\n     */\n    export interface CountryRegion {\n        CountryRegionId?: string;\n        IsoCode?: string;\n        ShortName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * BusinessVerticalsIndia entity interface.\n     */\n    export interface BusinessVerticalsIndia {\n        RecId: number;\n        Name?: string;\n        EntityCode?: string;\n        Description?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AddressTaxInformationIndia entity interface.\n     */\n    export interface AddressTaxInformationIndia {\n        RecId?: number;\n        Name?: string;\n        RegistrationLocation?: number;\n        Tin?: number;\n        Gstin?: number;\n        TinRegistrationNumber?: TaxRegistrationNumberIndia;\n        GstinRegistrationNumber?: TaxRegistrationNumberIndia;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerTaxInformation entity interface.\n     */\n    export interface CustomerTaxInformation {\n        CustomerId?: string;\n        DataAreaId?: string;\n        IsForeign?: boolean;\n        IsPreferential?: boolean;\n        NatureOfAssessee?: string;\n        PanNumber?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TaxRegistrationNumberIndia entity interface.\n     */\n    export interface TaxRegistrationNumberIndia {\n        RecId?: number;\n        RegistrationNumber?: string;\n        RegistrationType?: number;\n        TaxType?: number;\n        Type?: number;\n        BusinessVerticals?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChecklistTask entity interface.\n     */\n    export interface ChecklistTask {\n        Version?: string;\n        InstructionsVersion?: string;\n        AssignedToPersonnelNumbers?: string[];\n        AssignedToExternalSubId?: string;\n        Id?: string;\n        Name?: string;\n        Description?: string;\n        DueDateTime?: Date;\n        DeepLinkTypeValue?: number;\n        DeepLink?: string;\n        DeepLinkPosOperationName?: string;\n        ContactPersonPersonnelNumber?: string;\n        Instructions?: string;\n        StatusValue?: number;\n        CompletionDateTime?: Date;\n        ResolvedByPersonnelNumber?: string;\n        ChecklistId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * MediaLocation entity interface.\n     */\n    export interface MediaLocation {\n        Uri?: string;\n        AltText?: string;\n        IsDefault?: boolean;\n        IsSelfHosted?: boolean;\n        Priority?: number;\n        IsAdditionalMedia?: boolean;\n        MediaTypeValue?: number;\n        DisplayOrder?: number;\n        MediaPurpose?: string;\n        IsApplicableForChildEntities?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * EmployeeActivity entity interface.\n     */\n    export interface EmployeeActivity {\n        StaffId?: string;\n        StaffName?: string;\n        Activity?: string;\n        ActivityDateTimeOffset?: Date;\n        StoreNumber?: string;\n        EmployeeActivityTypeValue?: number;\n        BreakCategory?: string;\n        RecordId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerRefiner entity interface.\n     */\n    export interface CustomerRefiner extends SearchRefiner {\n        SourceValue?: number;\n        Values?: CustomerRefinerValue[];\n        }\n    \n    /**\n     * TokenizedPaymentCard entity interface.\n     */\n    export interface TokenizedPaymentCard {\n        IsSwipe?: boolean;\n        TenderType?: string;\n        CardTokenInfo?: CardTokenInfo;\n        Phone?: string;\n        Country?: string;\n        House?: string;\n        Address1?: string;\n        Address2?: string;\n        City?: string;\n        State?: string;\n        Zip?: string;\n        NameOnCard?: string;\n        CardTypeId?: string;\n        ExpirationMonth?: number;\n        ExpirationYear?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductDimensionAvailabilitySearchCriteria entity interface.\n     */\n    export interface ProductDimensionAvailabilitySearchCriteria {\n        RequestedDimensionTypeValue?: number;\n        RequestedDimensionTypeValues?: number[];\n        MatchingDimensionValues?: ProductDimension[];\n        DefaultWarehouseOnly?: boolean;\n        FilterByChannelFulfillmentGroup?: boolean;\n        DeliveryModeTypeFilterValue?: number;\n        CatalogId?: number;\n        InventoryAccuracyValue?: number;\n        }\n    \n    /**\n     * LineShippingAddress entity interface.\n     */\n    export interface LineShippingAddress {\n        LineId?: string;\n        ShippingAddress?: Address;\n        }\n    \n    /**\n     * CartDeliveryPreferences entity interface.\n     */\n    export interface CartDeliveryPreferences {\n        HeaderDeliveryPreferenceTypeValues?: number[];\n        CartLineDeliveryPreferences?: CartLineDeliveryPreference[];\n        }\n    \n    /**\n     * LineDeliverySpecification entity interface.\n     */\n    export interface LineDeliverySpecification {\n        LineId?: string;\n        DeliverySpecification?: DeliverySpecification;\n        }\n    \n    /**\n     * DeliverySpecification entity interface.\n     */\n    export interface DeliverySpecification {\n        DeliveryModeId?: string;\n        DeliveryPreferenceTypeValue?: number;\n        DeliveryAddress?: Address;\n        RequestedDeliveryDate?: Date;\n        PickUpStoreId?: string;\n        PickupTimeslotStartDateTime?: Date;\n        PickupTimeslotEndDateTime?: Date;\n        ElectronicDeliveryEmailAddress?: string;\n        ElectronicDeliveryEmailContent?: string;\n        ShipFromStoreId?: string;\n        ShipFromWarehouseId?: string;\n        }\n    \n    /**\n     * OrderSearchCriteria entity interface.\n     */\n    export interface OrderSearchCriteria {\n        CustomerAccountNumber?: string;\n        CustomerName?: string;\n        EmailAddress?: string;\n        LoyaltyCardNumber?: string;\n        CustomerPhoneNumber?: string;\n        SalesId?: string;\n        ReceiptId?: string;\n        OrderStatusValues?: number[];\n        DocumentStatusValues?: number[];\n        StartDateTime?: Date;\n        EndDateTime?: Date;\n        ChannelReferenceId?: string;\n        StoreId?: string;\n        OrderType?: number;\n        CustomFilters?: SearchFilter[];\n        FulfillmentTypeValues?: number[];\n        DeliveryMode?: string;\n        PickupStartDate?: Date;\n        PickupEndDate?: Date;\n        PickupTimeslotStartTime?: number;\n        PickupTimeslotEndTime?: number;\n        BusinessPartnerId?: string;\n        ChannelIds?: number[];\n        CustomerRequisition?: string;\n        SearchOnlyRetailOrders?: boolean;\n        }\n    \n    /**\n     * ChecklistSearchCriteria entity interface.\n     */\n    export interface ChecklistSearchCriteria {\n        ChannelId?: number;\n        PersonnelNumber?: string;\n        ChecklistIds?: string[];\n        StatusValues?: number[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TaskSearchCriteria entity interface.\n     */\n    export interface TaskSearchCriteria {\n        ChannelId?: number;\n        PersonnelNumber?: string;\n        TaskIds?: string[];\n        StatusValues?: number[];\n        FilterMyTasks: boolean;\n        FilterOverdueTasks: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChecklistTaskTeamsIntegrationConfiguration entity interface.\n     */\n    export interface ChecklistTaskTeamsIntegrationConfiguration {\n        IsEnabled?: boolean;\n        MicrosoftGraphResource?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReturnCartLine entity interface.\n     */\n    export interface ReturnCartLine {\n        Description?: string;\n        ItemId?: string;\n        ProductId?: number;\n        Quantity?: number;\n        ReturnLineNumber?: number;\n        ReturnTransactionId?: string;\n        SerialNumber?: string;\n        IgnoreSerialNumberMismatch?: boolean;\n        ReasonCodeLines?: ReasonCodeLine[];\n        Price?: number;\n        IsPriceKeyedIn?: boolean;\n        }\n    \n    /**\n     * TenderDiscountLine entity interface.\n     */\n    export interface TenderDiscountLine {\n        DiscountAmount?: number;\n        PaymentAmount?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReceiptRetrievalCriteria entity interface.\n     */\n    export interface ReceiptRetrievalCriteria {\n        IsCopy?: boolean;\n        IsRemoteTransaction?: boolean;\n        IsPreview?: boolean;\n        QueryBySalesId?: boolean;\n        ReceiptTypeValue?: number;\n        ShiftId?: number;\n        ShiftTerminalId?: string;\n        HardwareProfileId?: string;\n        }\n    \n    /**\n     * CartSearchCriteria entity interface.\n     */\n    export interface CartSearchCriteria {\n        CartId?: string;\n        ExpectedCartVersion?: number;\n        CustomerAccountNumber?: string;\n        IncludeAnonymous?: boolean;\n        SuspendedOnly?: boolean;\n        CartTypeValue?: number;\n        LastModifiedDateTimeFrom?: Date;\n        LastModifiedDateTimeTo?: Date;\n        }\n    \n    /**\n     * RetrievePaymentResultSettings entity interface.\n     */\n    export interface RetrievePaymentResultSettings {\n        ReturnUrl?: string;\n        PaymentConnectorId?: string;\n        }\n    \n    /**\n     * SearchReceiptCriteria entity interface.\n     */\n    export interface SearchReceiptCriteria {\n        TransactionId?: string;\n        ReceiptTypeValue?: number;\n        ReceiptTypesByFormatTypeCollection?: ReceiptTypesByFormatType[];\n        IsCopy?: boolean;\n        GiftReceiptLineNumbers?: number[];\n        }\n    \n    /**\n     * ElectronicAddress entity interface.\n     */\n    export interface ElectronicAddress {\n        AddressTypeValue?: number;\n        ExtensibleEAddressType?: ExtensibleElectronicAddressType;\n        Address?: string;\n        }\n    \n    /**\n     * ChannelReferenceLookupCriteria entity interface.\n     */\n    export interface ChannelReferenceLookupCriteria {\n        ChannelReferenceId?: string;\n        SearchLocationValue?: number;\n        ChannelReferenceAdditionalLookupCriteria?: ChannelReferenceAdditionalLookupCriteria[];\n        }\n    \n    /**\n     * FulfillmentLineParameter entity interface.\n     */\n    export interface FulfillmentLineParameter {\n        SalesId?: string;\n        SalesLineNumber?: number;\n        Quantity?: number;\n        SerialNumber?: string;\n        InvoiceDate?: Date;\n        PackingDate?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ShipFulfillmentLine entity interface.\n     */\n    export interface ShipFulfillmentLine extends FulfillmentLineParameter {\n        ProductId?: number;\n        }\n    \n    /**\n     * RejectFulfillmentLine entity interface.\n     */\n    export interface RejectFulfillmentLine extends FulfillmentLineParameter {\n        RejectedQuantity?: number;\n        InfoCodeId?: string;\n        SubInfoCodeId?: string;\n        }\n    \n    /**\n     * ReadChangedProductsSession entity interface.\n     */\n    export interface ReadChangedProductsSession {\n        Id?: string;\n        TotalNumberOfProducts?: number;\n        NumberOfProductsRead?: number;\n        NumberOfProductsReadInCurrentPage?: number;\n        NextSynchronizationToken?: string;\n        IsInitialSync?: boolean;\n        }\n    \n    /**\n     * DeletedListingsResult entity interface.\n     */\n    export interface DeletedListingsResult {\n        HasMorePublishedListings?: boolean;\n        DeletedListings?: ListingIdentity[];\n        }\n    \n    /**\n     * ProductRating entity interface.\n     */\n    export interface ProductRating {\n        ProductId?: number;\n        AverageRating?: number;\n        TotalRatings?: number;\n        RatingDistribution?: ProductRatingCount[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductDeliveryOptions entity interface.\n     */\n    export interface ProductDeliveryOptions {\n        ProductId?: number;\n        DeliveryOptions?: DeliveryOption[];\n        }\n    \n    /**\n     * ListingPublishStatus entity interface.\n     */\n    export interface ListingPublishStatus {\n        PublishStatusValue?: number;\n        ListingModifiedDateTime?: Date;\n        ChannelListingId?: string;\n        ChannelId?: number;\n        CatalogId?: number;\n        ProductId?: number;\n        LanguageId?: string;\n        AppliedActionValue?: number;\n        StatusMessage?: string;\n        Tag?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * MediaLocationSearchCriteria entity interface.\n     */\n    export interface MediaLocationSearchCriteria {\n        ProductId: number;\n        ChannelId: number;\n        CatalogId: number;\n        MediaUsageTypeValue: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OrgUnitLocationSearchCriteria entity interface.\n     */\n    export interface OrgUnitLocationSearchCriteria {\n        OrgUnitNumber?: string;\n        OrgUnitName?: string;\n        InventoryLocationIds?: string[];\n        DeliveryModeTypeFilterValue?: number;\n        }\n    \n    /**\n     * StoreHours entity interface.\n     */\n    export interface StoreHours {\n        RegularStoreHours?: RegularStoreHours;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * RecallOrderSearchCriteria entity interface.\n     */\n    export interface RecallOrderSearchCriteria {\n        TransactionId?: string;\n        Id?: string;\n        SearchLocationValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CartPromotions entity interface.\n     */\n    export interface CartPromotions {\n        HeaderPromotions?: string[];\n        CartLinePromotions?: CartLinePromotion[];\n        }\n    \n    /**\n     * CartPromotionLine entity interface.\n     */\n    export interface CartPromotionLine {\n        LineId?: string;\n        Promotion?: Promotion;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ItemUnit entity interface.\n     */\n    export interface ItemUnit {\n        ItemId?: string;\n        VariantInventoryDimensionId?: string;\n        Product?: number;\n        DistinctProductVariant?: number;\n        UnitOfMeasure?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductAvailableQuantity entity interface.\n     */\n    export interface ProductAvailableQuantity {\n        ProductId?: number;\n        AvailableQuantity?: number;\n        UnitOfMeasure?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OrgUnitAvailabilitySearchCriteria entity interface.\n     */\n    export interface OrgUnitAvailabilitySearchCriteria {\n        OrgUnitName?: string;\n        OrgUnitNumber?: string;\n        }\n    \n    /**\n     * AffiliationSearchCriteria entity interface.\n     */\n    export interface AffiliationSearchCriteria {\n        FilterTypeValue?: number;\n        AffiliationTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InvoiceSearchCriteria entity interface.\n     */\n    export interface InvoiceSearchCriteria {\n        BusinessPartnerId?: string;\n        CustomerId?: string;\n        InvoiceIds?: string[];\n        InvoiceTypeValues?: number[];\n        InvoicePaidStatusValues?: number[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InvoiceDetailsSearchCriteria entity interface.\n     */\n    export interface InvoiceDetailsSearchCriteria {\n        InvoiceId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InvoicedSalesLinesSearchCriteria entity interface.\n     */\n    export interface InvoicedSalesLinesSearchCriteria {\n        SalesIds?: string[];\n        InvoiceIds?: string[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PickAndPackSalesLineParameter entity interface.\n     */\n    export interface PickAndPackSalesLineParameter {\n        SalesLineNumber?: number;\n        Quantity?: number;\n        }\n    \n    /**\n     * ProductListSearchCriteria entity interface.\n     */\n    export interface ProductListSearchCriteria {\n        CustomerId?: string;\n        ProductListId?: string;\n        ProductListType?: string;\n        }\n    \n    /**\n     * ProjectionDomain entity interface.\n     */\n    export interface ProjectionDomain {\n        ChannelId?: number;\n        CatalogId?: number;\n        }\n    \n    /**\n     * AffiliationLoyaltyTier entity interface.\n     */\n    export interface AffiliationLoyaltyTier {\n        AffiliationId?: number;\n        LoyaltyTierId?: number;\n        AffiliationTypeValue?: number;\n        ReasonCodeLines?: ReasonCodeLine[];\n        CustomerId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PriceLookupContext entity interface.\n     */\n    export interface PriceLookupContext {\n        HeaderContext?: PriceLookupHeaderContext;\n        LineContexts?: PriceLookupLineContext[];\n        }\n    \n    /**\n     * ProductPromotion entity interface.\n     */\n    export interface ProductPromotion {\n        ProductId?: number;\n        ProductDiscounts?: Promotion[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ClientBookCustomerSearchCriteria entity interface.\n     */\n    export interface ClientBookCustomerSearchCriteria {\n        FilterByCurrentEmployee?: boolean;\n        Refinement?: ClientBookRefinerValue[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ClientBookCustomer entity interface.\n     */\n    export interface ClientBookCustomer {\n        CustomerId?: string;\n        Name?: string;\n        Phone?: string;\n        Email?: string;\n        StaffId?: string;\n        ImageUris?: MediaLocation[];\n        Attributes?: CustomerAttribute[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ClientBookChanges entity interface.\n     */\n    export interface ClientBookChanges {\n        Changes?: ClientBookChange[];\n        }\n    \n    /**\n     * ChargeCode entity interface.\n     */\n    export interface ChargeCode {\n        Code?: string;\n        ModuleTypeValue?: number;\n        Description?: string;\n        ItemTaxGroupId?: string;\n        IsRefundable?: boolean;\n        IsShipping?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PaymentMerchantInformation entity interface.\n     */\n    export interface PaymentMerchantInformation {\n        PaymentConnectorPropertiesXml?: string;\n        MerchantPropertiesHashValue?: string;\n        ServiceAccountId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * StoreSafe entity interface.\n     */\n    export interface StoreSafe {\n        SafeNumber?: string;\n        Name?: string;\n        StoreNumber?: string;\n        SafeBalance?: number;\n        LastUpdatedTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentReceiptSearchCriteria entity interface.\n     */\n    export interface InventoryDocumentReceiptSearchCriteria {\n        SourceDocumentId?: string;\n        SourceDocumentTypeValue?: number;\n        WorkDocumentId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity interface.\n     */\n    export interface InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n        SourceDocumentRecordId?: number;\n        SourceDocumentTypeValue?: number;\n        SourceDocumentLineRecordId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentSourceDocumentLineCommitRecord entity interface.\n     */\n    export interface InventoryDocumentSourceDocumentLineCommitRecord {\n        WorkDocumentId?: string;\n        LineId?: string;\n        SourceDocumentRecordId?: number;\n        SourceDocumentTypeValue?: number;\n        SourceDocumentLineRecordId?: number;\n        StaffId?: string;\n        UpdateNowQuantity?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CreateHardwareStationTokenResult entity interface.\n     */\n    export interface CreateHardwareStationTokenResult {\n        HardwareStationToken?: string;\n        PairingKey?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ValidateHardwareStationTokenResult entity interface.\n     */\n    export interface ValidateHardwareStationTokenResult {\n        PairingKey?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * MediaBlob entity interface.\n     */\n    export interface MediaBlob {\n        MediaType?: string;\n        Content?: string;\n        IsDefault?: boolean;\n        AltText?: string;\n        PictureId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OnlineChannel entity interface.\n     */\n    export interface OnlineChannel {\n        OnlineStoreCustomerTypeValue?: number;\n        OnlineChannelName?: string;\n        CurrencyCode?: string;\n        OnlineStoreAzureB2CProfile?: number;\n        CountryRegions?: CountryRegion[];\n        EventNotificationProfileId?: string;\n        RecordId?: number;\n        OMOperatingUnitNumber?: string;\n        OrgUnitTypeValue?: number;\n        Name?: string;\n        DefaultCustomerAccount?: string;\n        CategoryHierarchyId?: number;\n        InventoryLocationId?: string;\n        ChannelProfile?: ChannelProfile;\n        ChannelProperties?: ChannelProperty[];\n        ChannelLanguages?: ChannelLanguage[];\n        Contacts?: OrgUnitContact[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TerminalDataDownloadRequestInfo entity interface.\n     */\n    export interface TerminalDataDownloadRequestInfo {\n        TerminalId?: string;\n        RequiresDataInitialization?: boolean;\n        HasBeenInitializedBefore?: boolean;\n        }\n    \n    /**\n     * DataDownloadParameters entity interface.\n     */\n    export interface DataDownloadParameters {\n        DownloadInterval?: number;\n        DownloadSessions?: DownloadSession[];\n        FeatureControlList?: RetailSharedConfigurationParameter[];\n        DataStore?: CDXDataStore;\n        }\n    \n    /**\n     * TerminalDataUploadRequestInfo entity interface.\n     */\n    export interface TerminalDataUploadRequestInfo {\n        TerminalId?: string;\n        }\n    \n    /**\n     * DataUploadParameters entity interface.\n     */\n    export interface DataUploadParameters {\n        UploadInterval?: number;\n        UploadJobPackageRequests?: UploadJobPackageRequest[];\n        FeatureControlList?: RetailSharedConfigurationParameter[];\n        DataStore?: CDXDataStore;\n        }\n    \n    /**\n     * DownloadSession entity interface.\n     */\n    export interface DownloadSession {\n        Id?: number;\n        JobId?: string;\n        JobDescription?: string;\n        FileSize?: number;\n        RowsAffected?: number;\n        Checksum?: string;\n        DateDownloaded?: string;\n        DateRequested?: string;\n        DataStoreName?: string;\n        StatusValue?: number;\n        Message?: string;\n        DownloadLink?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OfflineTerminalState entity interface.\n     */\n    export interface OfflineTerminalState {\n        TerminalId?: string;\n        State?: string;\n        }\n    \n    /**\n     * LoyaltyRewardPointActivity entity interface.\n     */\n    export interface LoyaltyRewardPointActivity {\n        ActivityDate?: Date;\n        LoyaltyRewardPointTimelineEntryType?: string;\n        ExtensibleLoyaltyRewardPointActivityEntryTypeValue?: number;\n        LoyaltyPoints?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CurrencyRequest entity interface.\n     */\n    export interface CurrencyRequest {\n        AmountToConvert?: number;\n        CurrencyCode?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * HardwareStationProfile entity interface.\n     */\n    export interface HardwareStationProfile {\n        RecordId?: number;\n        HardwareStationId?: string;\n        HardwareStationTypeValue?: number;\n        HardwareProfileId?: string;\n        HardwareStationName?: string;\n        HardwareStationDescription?: string;\n        HardwareStationUrl?: string;\n        HardwareStationHostName?: string;\n        HardwareStationEftTerminalId?: string;\n        HardwareConfigurations?: HardwareConfigurations;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LoyaltyCardSearchCriteria entity interface.\n     */\n    export interface LoyaltyCardSearchCriteria {\n        ChannelId: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * NameValuePair entity interface.\n     */\n    export interface NameValuePair {\n        Name?: string;\n        Value?: string;\n        }\n    \n    /**\n     * LinkToExistingCustomerResult entity interface.\n     */\n    export interface LinkToExistingCustomerResult {\n        EmailAddress?: string;\n        ExternalIdentityProvider?: string;\n        ExternalIdentityLinkRecordId?: number;\n        }\n    \n    /**\n     * OfflineSyncStatsLine entity interface.\n     */\n    export interface OfflineSyncStatsLine {\n        IsUploadJob?: boolean;\n        JobDescription?: string;\n        LastSyncDateTime?: Date;\n        Status?: string;\n        FileSize?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * StorageAccessToken entity interface.\n     */\n    export interface StorageAccessToken {\n        Url?: string;\n        SasKey?: string;\n        }\n    \n    /**\n     * TaskGuidesSearchResult entity interface.\n     */\n    export interface TaskGuidesSearchResult {\n        Lines?: Line[];\n        FrameworkPublisherName?: string;\n        FrameworkName?: string;\n        }\n    \n    /**\n     * AuditEvent entity interface.\n     */\n    export interface AuditEvent {\n        EventId?: number;\n        EventIdString?: string;\n        Channel?: number;\n        Store?: string;\n        Terminal?: string;\n        UploadTypeValue?: number;\n        EventTypeValue?: number;\n        EventDateTime?: Date;\n        DurationInMilliseconds?: number;\n        Source?: string;\n        EventMessage?: string;\n        LogLevel?: string;\n        LogLevelValue?: number;\n        Staff?: string;\n        ShiftId?: number;\n        ClosedShiftId?: number;\n        ReferenceId?: number;\n        RefChannel?: number;\n        RefStore?: string;\n        RefTerminal?: string;\n        RefTransactionId?: string;\n        AuditEventTypeValue?: number;\n        FiscalTransactions?: AuditEventFiscalTransaction[];\n        FiscalRegistrationLines?: AuditEventFiscalRegistrationLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ItemAvailability entity interface.\n     */\n    export interface ItemAvailability {\n        ItemId?: string;\n        VariantInventoryDimensionId?: string;\n        InventoryLocationId?: string;\n        ProductId?: number;\n        AvailableQuantity?: number;\n        OrderedSum?: number;\n        PhysicalReserved?: number;\n        UnitOfMeasure?: string;\n        InventoryUnitOfMeasure?: string;\n        InventoryUnitOfMeasureDescription?: string;\n        ProductDimensions?: ProductDimension[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryAvailableToPromise entity interface.\n     */\n    export interface InventoryAvailableToPromise extends ItemAvailability {\n        Date?: string;\n        }\n    \n    /**\n     * NotificationItem entity interface.\n     */\n    export interface NotificationItem {\n        Action?: number;\n        ActionName?: string;\n        NotificationDetails?: NotificationDetail[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalIntegrationDocumentRetrievalCriteria entity interface.\n     */\n    export interface FiscalIntegrationDocumentRetrievalCriteria {\n        TransactionId?: string;\n        IsRemoteTransaction?: boolean;\n        QueryBySalesId?: boolean;\n        FiscalRegistrationEventTypeValue?: number;\n        ShiftId?: number;\n        ShiftTerminalId?: string;\n        DocumentContext?: FiscalIntegrationDocumentContext;\n        }\n    \n    /**\n     * FiscalIntegrationDocument entity interface.\n     */\n    export interface FiscalIntegrationDocument {\n        Document?: string;\n        DocumentGenerationResultTypeValue?: number;\n        FiscalConnectorTechnicalProfile?: FiscalIntegrationTechnicalProfile;\n        DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n        SequentialSignatureDataContext?: FiscalIntegrationSignatureDataContext;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalIntegrationRegistrationResult entity interface.\n     */\n    export interface FiscalIntegrationRegistrationResult {\n        TransactionID?: string;\n        AuditEventId?: string;\n        Response?: string;\n        SubmittedDocument?: string;\n        RegisterInfo?: string;\n        RegistrationStatusValue?: number;\n        FiscalRegistrationEventTypeValue?: number;\n        DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n        ReasonCodeLines?: ReasonCodeLine[];\n        SequentialSignatureData?: FiscalIntegrationSequentialSignatureData;\n        }\n    \n    /**\n     * FiscalIntegrationRegistrationProcess entity interface.\n     */\n    export interface FiscalIntegrationRegistrationProcess {\n        RecordId?: number;\n        RegistrationProcessId?: string;\n        Description?: string;\n        ModeValue?: number;\n        RegistrationProcessLines?: FiscalIntegrationRegistrationProcessLine[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalIntegrationSupportedEvents entity interface.\n     */\n    export interface FiscalIntegrationSupportedEvents {\n        FunctionalityProfileGroupId?: string;\n        SupportedFiscalEventTypes?: number[];\n        SupportedNonFiscalEventTypes?: number[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalIntegrationTechnicalProfile entity interface.\n     */\n    export interface FiscalIntegrationTechnicalProfile {\n        ProfileId?: string;\n        Description?: string;\n        ConnectorName?: string;\n        ConnectorTypeValue?: number;\n        ConnectorLocationValue?: number;\n        TechnicalProfile?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalIntegrationFiscalRegistrationProcessSummary entity interface.\n     */\n    export interface FiscalIntegrationFiscalRegistrationProcessSummary {\n        RegistrationProcessId?: string;\n        FiscalRegistrationProcessSummaryLines?: FiscalIntegrationFiscalRegistrationProcessSummaryLine[];\n        ErrorCode?: number;\n        }\n    \n    /**\n     * FiscalIntegrationTechnicalProfileSearchCriteria entity interface.\n     */\n    export interface FiscalIntegrationTechnicalProfileSearchCriteria {\n        ExcludeOptionalProcessLines?: boolean;\n        FunctionalityProfileGroupIds?: string[];\n        }\n    \n    /**\n     * FiscalIntegrationServiceInfo entity interface.\n     */\n    export interface FiscalIntegrationServiceInfo {\n        ServiceName?: string;\n        ServiceProperties?: string;\n        }\n    \n    /**\n     * FiscalIntegrationServiceStatus entity interface.\n     */\n    export interface FiscalIntegrationServiceStatus {\n        IsReady?: boolean;\n        }\n    \n    /**\n     * FiscalIntegrationServiceCommunicationResult entity interface.\n     */\n    export interface FiscalIntegrationServiceCommunicationResult {\n        Response?: string;\n        CommunicationResultTypeValue?: number;\n        FailureDetails?: FiscalIntegrationServiceFailureDetails;\n        FiscalIntegrationServiceInfo?: string;\n        UserNotificationMessage?: string;\n        }\n    \n    /**\n     * FiscalIntegrationSequentialSignatureData entity interface.\n     */\n    export interface FiscalIntegrationSequentialSignatureData {\n        LastRegisterResponse?: string;\n        SequenceKey?: string;\n        IsOffline?: boolean;\n        SequentialNumber?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DiscountsSearchCriteria entity interface.\n     */\n    export interface DiscountsSearchCriteria {\n        ChannelId?: number;\n        Keyword?: string;\n        IsDiscountCodeRequired?: boolean;\n        StartDate?: Date;\n        EndDate?: Date;\n        IncludeDisabledDiscount?: boolean;\n        ExcludeTenderDiscount?: boolean;\n        DiscountOfferTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Promotion entity interface.\n     */\n    export interface Promotion {\n        OfferId?: string;\n        OfferName?: string;\n        PeriodicDiscountTypeValue?: number;\n        IsDiscountCodeRequired?: boolean;\n        ValidationPeriodId?: string;\n        AdditionalRestrictions?: string;\n        Description?: string;\n        ValidFromDate?: Date;\n        ValidToDate?: Date;\n        ValidationPeriod?: ValidationPeriod;\n        CouponCodes?: string[];\n        DateValidationTypeValue?: number;\n        AreCouponsActiveOnSameDate?: boolean;\n        AreCouponsExpiredOnSameDate?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CategoryPathLookup entity interface.\n     */\n    export interface CategoryPathLookup {\n        ProductId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CategoryPathResult entity interface.\n     */\n    export interface CategoryPathResult {\n        ProductId?: number;\n        CategoryPath?: CategoryPath[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PickupTimeslotAvailabilitySearchCriteria entity interface.\n     */\n    export interface PickupTimeslotAvailabilitySearchCriteria {\n        DeliveryModeCode?: string;\n        StoreId?: string;\n        StartDate?: Date;\n        EndDate?: Date;\n        SearchOptionValue?: number;\n        }\n    \n    /**\n     * PickupTimeslotAvailability entity interface.\n     */\n    export interface PickupTimeslotAvailability {\n        AvailableCapacity?: number;\n        StartDateTime?: Date;\n        EndDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CheckInForOrderPickupConfirmation entity interface.\n     */\n    export interface CheckInForOrderPickupConfirmation {\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SalesOrderConfirmedShipDateChange entity interface.\n     */\n    export interface SalesOrderConfirmedShipDateChange {\n        SalesId?: string;\n        ConfirmedShipDate?: Date;\n        LineChanges?: SalesLineConfirmedShipDateChange[];\n        }\n    \n    /**\n     * OrderCancellationResult entity interface.\n     */\n    export interface OrderCancellationResult {\n        DocumentOperationCommitResultValue?: number;\n        DocumentOperationCommitResultCodeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * VendorSearchCriteria entity interface.\n     */\n    export interface VendorSearchCriteria {\n        SearchText?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Vendor entity interface.\n     */\n    export interface Vendor {\n        RecordId?: number;\n        AccountNumber?: string;\n        PartyId?: number;\n        DataAreaId?: string;\n        Name?: string;\n        NameAlias?: string;\n        PartyNumber?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * VendorValidationResult entity interface.\n     */\n    export interface VendorValidationResult {\n        Message?: string;\n        VendorValidationResultLevelValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CopilotResponse entity interface.\n     */\n    export interface CopilotResponse {\n        Content?: string;\n        Disclaimer?: string;\n        LastRefreshDatetime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * OnlineChannelAzureB2CConfiguration entity interface.\n     */\n    export interface OnlineChannelAzureB2CConfiguration {\n        Name?: string;\n        Description?: string;\n        TenantName?: string;\n        SignInSignupPolicyId?: string;\n        PasswordResetPolicyId?: string;\n        SignUpPolicyId?: string;\n        EditProfilePolicyId?: string;\n        LoginDomainName?: string;\n        Scope?: string;\n        ApplicationId?: string;\n        ApplicationSecret?: string;\n        IsDefault?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ExtensionProfile entity interface.\n     */\n    export interface ExtensionProfile {\n        ExtensionServiceUrl?: string;\n        AttachedServices?: AttachedService[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelInventoryConfiguration entity interface.\n     */\n    export interface ChannelInventoryConfiguration {\n        RecordId?: number;\n        ChannelId?: string;\n        AllowTransferOrderOverDelivery?: boolean;\n        AllowTransferOrderUnderDelivery?: boolean;\n        UserLocationProfileId?: string;\n        InventoryProductAttributeRecordId?: number;\n        InventoryOutOfStockAttributeValueText?: string;\n        ProductAvailabilitySortableAttributeRecordId?: number;\n        SkipQuantityInputWhenScanBarcode?: boolean;\n        UseInventoryVisibilityServiceAsDataSource?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelMerchandisingConfiguration entity interface.\n     */\n    export interface ChannelMerchandisingConfiguration {\n        RecordId?: number;\n        ChannelId?: string;\n        EnableMultipleUnitsOfMeasure?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelPurchaseConfiguration entity interface.\n     */\n    export interface ChannelPurchaseConfiguration {\n        RecordId?: number;\n        ChannelId?: string;\n        AllowOverDelivery?: boolean;\n        AllowSubDelivery?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryJournalName entity interface.\n     */\n    export interface InventoryJournalName {\n        RecordId?: number;\n        JournalNameId?: string;\n        InventoryJournalTypeValue?: number;\n        Description?: string;\n        DefaultAdjustmentTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ShiftRetrievalCriteria entity interface.\n     */\n    export interface ShiftRetrievalCriteria {\n        ShiftStatusValue?: number;\n        FilterByUserRole?: boolean;\n        IncludeAllShiftsForStore?: boolean;\n        }\n    \n    /**\n     * UserDefinedSecretCertificateResult entity interface.\n     */\n    export interface UserDefinedSecretCertificateResult {\n        CertificateData?: string;\n        }\n    \n    /**\n     * TerminalInfo entity interface.\n     */\n    export interface TerminalInfo {\n        TerminalId?: string;\n        DeviceNumber?: string;\n        Name?: string;\n        DeviceType?: number;\n        ActivationStatusValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerTimelineItemTypeMap entity interface.\n     */\n    export interface CustomerTimelineItemTypeMap {\n        EntityType?: string;\n        Types?: CustomerTimelineItemType[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerTimelineRefiner entity interface.\n     */\n    export interface CustomerTimelineRefiner {\n        RefinedResultsCount?: number;\n        EntityType?: string;\n        TypeId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerTitle entity interface.\n     */\n    export interface CustomerTitle {\n        Text?: string;\n        RecordId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductWarehouse entity interface.\n     */\n    export interface ProductWarehouse {\n        ProductId?: number;\n        InventLocationId?: string;\n        DataAreaId?: string;\n        UnitOfMeasure?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductWarehouseInventoryInformation entity interface.\n     */\n    export interface ProductWarehouseInventoryInformation {\n        ProductWarehouseInventoryAvailabilities?: ProductWarehouseInventoryAvailability[];\n        AggregatedProductInventoryAvailabilities?: ProductInventoryAvailability[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductWarehouseQuantity entity interface.\n     */\n    export interface ProductWarehouseQuantity {\n        ProductId?: number;\n        InventoryLocationId?: string;\n        PhysicalInventory?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * UpdateProductWarehouseAvailabilityResult entity interface.\n     */\n    export interface UpdateProductWarehouseAvailabilityResult {\n        SuccessfulUpdates?: InventoryQuantity[];\n        FailedUpdates?: InventoryQuantity[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryAvailabilitySearchCriteria entity interface.\n     */\n    export interface InventoryAvailabilitySearchCriteria {\n        ProductIds?: number[];\n        DefaultWarehouseOnly?: boolean;\n        SearchArea?: SearchArea;\n        FilterByChannelFulfillmentGroup?: boolean;\n        DeliveryModeTypeFilterValue?: number;\n        QuantityUnitTypeValue?: number;\n        ProductUnits?: ProductUnit[];\n        DataLevelValue?: number;\n        }\n    \n    /**\n     * ExtensibleEnumerationContainer entity interface.\n     */\n    export interface ExtensibleEnumerationContainer {\n        TypeName?: string;\n        ExtensibleEnumerations?: ExtensibleEnumeration[];\n        }\n    \n    /**\n     * PackingSlipData entity interface.\n     */\n    export interface PackingSlipData {\n        PackingSlipId?: string;\n        CreatedDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CartConfiguration entity interface.\n     */\n    export interface CartConfiguration {\n        ValidateDefaultOrderSettingsPerLine?: boolean;\n        IgnoreOrderSettings?: boolean;\n        MaxQuantityPerItem?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * EmailReceiptSettings entity interface.\n     */\n    export interface EmailReceiptSettings {\n        ReceiptTypeValue?: number;\n        EmailBehaviorValue?: number;\n        ReceiptTitle?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalIntegrationComplianceResult entity interface.\n     */\n    export interface FiscalIntegrationComplianceResult {\n        ErrorMessages?: string[];\n        }\n    \n    /**\n     * OrgUnitAddress entity interface.\n     */\n    export interface OrgUnitAddress extends Address {\n        }\n    \n    /**\n     * WarehouseDetails entity interface.\n     */\n    export interface WarehouseDetails extends Address {\n        InventoryLocationId?: string;\n        InventorySiteId?: string;\n        Latitude?: number;\n        Longitude?: number;\n        }\n    \n    /**\n     * AttributeSwatch entity interface.\n     */\n    export interface AttributeSwatch {\n        SwatchValue?: string;\n        SwatchImageUrl?: string;\n        SwatchColorHexCode?: string;\n        IsDefault?: boolean;\n        ProductImageUrls?: string[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AttributeBooleanValue entity interface.\n     */\n    export interface AttributeBooleanValue extends AttributeValueBase {\n        Value?: boolean;\n        }\n    \n    /**\n     * AttributeCurrencyValue entity interface.\n     */\n    export interface AttributeCurrencyValue extends AttributeValueBase {\n        CurrencyValue?: number;\n        CurrencyCode?: string;\n        }\n    \n    /**\n     * AttributeDateTimeOffsetValue entity interface.\n     */\n    export interface AttributeDateTimeOffsetValue extends AttributeValueBase {\n        Value?: Date;\n        }\n    \n    /**\n     * AttributeFloatValue entity interface.\n     */\n    export interface AttributeFloatValue extends AttributeValueBase {\n        Value?: number;\n        UnitSymbol?: string;\n        }\n    \n    /**\n     * AttributeIntValue entity interface.\n     */\n    export interface AttributeIntValue extends AttributeValueBase {\n        Value?: number;\n        UnitSymbol?: string;\n        }\n    \n    /**\n     * AttributeMediaLocationValue entity interface.\n     */\n    export interface AttributeMediaLocationValue extends AttributeValueBase {\n        Value?: MediaLocation[];\n        }\n    \n    /**\n     * AttributeTextValue entity interface.\n     */\n    export interface AttributeTextValue extends AttributeValueBase {\n        RecId?: number;\n        TextValue?: string;\n        TextValueTranslations?: TextValueTranslation[];\n        }\n    \n    /**\n     * ButtonGridButton entity interface.\n     */\n    export interface ButtonGridButton {\n        Action?: number;\n        ActionProperty?: string;\n        BackColorAsARGB?: ARGBColor;\n        BorderColorAsARGB?: ARGBColor;\n        Column?: number;\n        ColumnSpan?: number;\n        DisplayText?: string;\n        FontColorAsARGB?: ARGBColor;\n        ButtonId?: number;\n        Row?: number;\n        RowSpan?: number;\n        UseCustomLookAndFeel?: boolean;\n        PictureId?: number;\n        PictureAsBase64?: string;\n        FontStyle?: number;\n        FontSize?: number;\n        EnableCustomFontForPOS?: boolean;\n        HideButtonText?: boolean;\n        Tooltip?: string;\n        EnableLiveContent?: boolean;\n        NotificationContentAlignment?: number;\n        ImageAlignment?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ARGBColor entity interface.\n     */\n    export interface ARGBColor {\n        A?: number;\n        R?: number;\n        G?: number;\n        B?: number;\n        }\n    \n    /**\n     * PriceLine entity interface.\n     */\n    export interface PriceLine {\n        RecordId?: number;\n        Value?: number;\n        PriceMethod?: string;\n        OriginId?: string;\n        PriceChangedByExtensions?: boolean;\n        SaleLineNumber?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TradeAgreementPriceLine entity interface.\n     */\n    export interface TradeAgreementPriceLine extends PriceLine {\n        }\n    \n    /**\n     * AttributePricingTradeAgreementPriceLine entity interface.\n     */\n    export interface AttributePricingTradeAgreementPriceLine extends TradeAgreementPriceLine {\n        CanApplyPriceAdjustments?: boolean;\n        PricingPriorityNumber?: number;\n        }\n    \n    /**\n     * SalesAgreementPriceLine entity interface.\n     */\n    export interface SalesAgreementPriceLine extends PriceLine {\n        SalesAgreementName?: string;\n        UnitPrice?: number;\n        DiscountAmount?: number;\n        DiscountPercent?: number;\n        SalesAgreementLineTypeValue?: number;\n        PriceUnit?: number;\n        EffectiveDate?: Date;\n        ExpirationDate?: Date;\n        CommittedQuantity?: number;\n        RemainingQuantity?: number;\n        CommittedAmount?: number;\n        RemainingAmount?: number;\n        }\n    \n    /**\n     * PriceAdjustmentPriceLine entity interface.\n     */\n    export interface PriceAdjustmentPriceLine extends PriceLine {\n        IsCompoundable?: boolean;\n        Concurrency?: string;\n        }\n    \n    /**\n     * AttributePricingAdjustmentPriceLine entity interface.\n     */\n    export interface AttributePricingAdjustmentPriceLine extends PriceAdjustmentPriceLine {\n        CanCompoundOnAdjustedPrice?: boolean;\n        PricingPriorityNumber?: number;\n        AdjustedAmount?: number;\n        }\n    \n    /**\n     * ManualPriceLine entity interface.\n     */\n    export interface ManualPriceLine extends PriceLine {\n        ManualPrice?: number;\n        UnitOfMeasureSymbol?: string;\n        ManualPriceEntryTypeValue?: number;\n        }\n    \n    /**\n     * BasePriceLine entity interface.\n     */\n    export interface BasePriceLine extends PriceLine {\n        }\n    \n    /**\n     * ExtensiblePeriodicDiscountOfferType entity interface.\n     */\n    export interface ExtensiblePeriodicDiscountOfferType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ChargeLineOverride entity interface.\n     */\n    export interface ChargeLineOverride {\n        OriginalAmount?: number;\n        OverrideAmount?: number;\n        OverrideReasonDescription?: string;\n        OverrideDateTime?: Date;\n        UserId?: string;\n        }\n    \n    /**\n     * TaxLineGTE entity interface.\n     */\n    export interface TaxLineGTE extends TaxLine {\n        TaxComponent?: string;\n        }\n    \n    /**\n     * TaxMeasure entity interface.\n     */\n    export interface TaxMeasure {\n        Path?: string;\n        Value?: number;\n        DataAreaId?: string;\n        SaleLineNumber?: number;\n        StoreId?: string;\n        TerminalId?: string;\n        TransactionId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DetailedLineStatus entity interface.\n     */\n    export interface DetailedLineStatus extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * CardTokenInfo entity interface.\n     */\n    export interface CardTokenInfo {\n        CardToken?: string;\n        UniqueCardId?: string;\n        ServiceAccountId?: string;\n        MaskedCardNumber?: string;\n        }\n    \n    /**\n     * DataverseTenderLine entity interface.\n     */\n    export interface DataverseTenderLine extends TenderLine {\n        }\n    \n    /**\n     * PaymentError entity interface.\n     */\n    export interface PaymentError {\n        Code?: string;\n        Message?: string;\n        IsLocalized?: boolean;\n        }\n    \n    /**\n     * ProductAttributeMetadataFlags entity interface.\n     */\n    export interface ProductAttributeMetadataFlags {\n        IsSearchable?: boolean;\n        IsRetrievable?: boolean;\n        IsQueryable?: boolean;\n        IsRefinable?: boolean;\n        IsSortable?: boolean;\n        IsMultiValue?: boolean;\n        IsTokenNormalization?: boolean;\n        IsCompleteMatch?: boolean;\n        }\n    \n    /**\n     * UnitOfMeasureConversion entity interface.\n     */\n    export interface UnitOfMeasureConversion {\n        ItemId?: string;\n        FromUnitOfMeasureId?: string;\n        ToUnitOfMeasureId?: string;\n        FromUnitOfMeasureSymbol?: string;\n        ToUnitOfMeasureSymbol?: string;\n        IsBackward?: boolean;\n        RecordId?: number;\n        ProductRecordId?: number;\n        Factor?: number;\n        Numerator?: number;\n        Denominator?: number;\n        InnerOffset?: number;\n        OuterOffset?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReturnLabelContent entity interface.\n     */\n    export interface ReturnLabelContent {\n        ReturnLocationText?: string;\n        ReturnWarehouseText?: string;\n        ReturnReasonText?: string;\n        ReturnPalleteText?: string;\n        ItemId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LoyaltyRewardPointLine entity interface.\n     */\n    export interface LoyaltyRewardPointLine {\n        TransactionId?: string;\n        SaleLineNumber?: number;\n        LoyaltyGroupRecordId?: number;\n        LoyaltyCardNumber?: string;\n        CustomerAccount?: string;\n        EntryDate?: Date;\n        EntryTime?: number;\n        EntryTypeValue?: number;\n        ExpirationDate?: Date;\n        LineNumber?: number;\n        LoyaltyTierRecordId?: number;\n        RewardPointRecordId?: number;\n        RewardPointAmountQuantity?: number;\n        RewardPointId?: string;\n        RewardPointIsRedeemable?: boolean;\n        RewardPointType?: string;\n        RewardPointCurrency?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TrackingInfo entity interface.\n     */\n    export interface TrackingInfo {\n        TrackingNumber?: string;\n        ServiceType?: string;\n        PackageWeight?: Weight;\n        ShippedOnDate?: Date;\n        Status?: string;\n        DeliveredOnDate?: Date;\n        EstimatedDeliveryDate?: Date;\n        TrackingUrl?: string;\n        PackagingType?: string;\n        DestinationAddress?: Address;\n        OriginAddress?: Address;\n        ShipmentProgress?: ShipmentProgress[];\n        ShippingCharge?: number;\n        }\n    \n    /**\n     * Weight entity interface.\n     */\n    export interface Weight {\n        Value?: number;\n        Unit?: string;\n        }\n    \n    /**\n     * ShipmentProgress entity interface.\n     */\n    export interface ShipmentProgress {\n        Location?: Address;\n        DateTime?: Date;\n        Activity?: string;\n        }\n    \n    /**\n     * ShiftKey entity interface.\n     */\n    export interface ShiftKey {\n        ShiftTerminalId?: string;\n        ShiftId?: number;\n        Store?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * LocalizedText entity interface.\n     */\n    export interface LocalizedText {\n        RecordId?: number;\n        LanguageId?: string;\n        TextId?: string;\n        Text?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AddressFormattingInfo entity interface.\n     */\n    export interface AddressFormattingInfo {\n        AddressComponentNameValue?: number;\n        LineNumber?: number;\n        IsDataEntryOnly?: boolean;\n        NewLine?: boolean;\n        Expand?: boolean;\n        Inactive?: boolean;\n        Special?: boolean;\n        NumberOfSpaces?: number;\n        Separator?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * HardwareConfigurations entity interface.\n     */\n    export interface HardwareConfigurations {\n        CashDrawerConfigurations?: HardwareConfiguration[];\n        PrinterConfigurations?: HardwareConfiguration[];\n        PinPadConfiguration?: HardwareConfiguration;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * HardwareConfiguration entity interface.\n     */\n    export interface HardwareConfiguration {\n        RecordId?: number;\n        HardwareStationRecordId?: number;\n        TerminalId?: string;\n        DeviceName?: string;\n        IPAddress?: string;\n        Port?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Printer entity interface.\n     */\n    export interface Printer {\n        Name?: string;\n        PrinterType?: number;\n        Terminal?: number;\n        PrintBehaviorValue?: number;\n        ReceiptLayoutId?: string;\n        HardwareProfileId?: string;\n        ReceiptType?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductQuantityLimitRule entity interface.\n     */\n    export interface ProductQuantityLimitRule {\n        DefaultQuantity?: number;\n        MaximumQuantity?: number;\n        MinimumQuantity?: number;\n        MultipleOfQuantity?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerRefinerValue entity interface.\n     */\n    export interface CustomerRefinerValue extends SearchRefinerValue {\n        RefinerSourceValue?: number;\n        }\n    \n    /**\n     * TransferOrderJournalLine entity interface.\n     */\n    export interface TransferOrderJournalLine {\n        ItemId?: string;\n        ItemName?: string;\n        InventDimId?: string;\n        TotalQuantityShipped?: number;\n        QuantityShipped?: number;\n        TransferQuantity?: number;\n        UnitId?: string;\n        ConfigId?: string;\n        InventSizeId?: string;\n        InventColorId?: string;\n        InventStyleId?: string;\n        ConfigValue?: string;\n        SizeValue?: string;\n        ColorValue?: string;\n        StyleValue?: string;\n        DeliveryMethod?: string;\n        Barcode?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentSourceSerialNumberLine entity interface.\n     */\n    export interface InventoryDocumentSourceSerialNumberLine {\n        SourceDocumentTypeValue?: number;\n        SourceDocumentId?: string;\n        DocumentLineRecordId?: number;\n        InventTransRecordId?: number;\n        LineId?: string;\n        Quantity?: number;\n        SerialNumber?: string;\n        StatusValue?: number;\n        ProductId?: number;\n        DataAreaId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentSourceTrackingDimensionLine entity interface.\n     */\n    export interface InventoryDocumentSourceTrackingDimensionLine {\n        SourceDocumentTypeValue?: number;\n        SourceDocumentId?: string;\n        DocumentLineRecordId?: number;\n        InventTransRecordId?: number;\n        LineId?: string;\n        Quantity?: number;\n        SerialNumber?: string;\n        BatchNumber?: string;\n        StatusValue?: number;\n        ProductId?: number;\n        DataAreaId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryDocumentTrackingDimensionLine entity interface.\n     */\n    export interface InventoryDocumentTrackingDimensionLine {\n        WorkDocumentId?: string;\n        WorkDocumentLineId?: string;\n        SourceLineId?: string;\n        LineId?: string;\n        Quantity?: number;\n        SerialNumber?: string;\n        BatchNumber?: string;\n        StatusValue?: number;\n        ProductId?: number;\n        ModifiedDateTime?: Date;\n        SourceDocumentRecordId?: number;\n        SourceDocumentTypeValue?: number;\n        SourceDocumentLineRecordId?: number;\n        SourceLine?: InventoryDocumentSourceTrackingDimensionLine;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * KitTransactionLine entity interface.\n     */\n    export interface KitTransactionLine {\n        ItemId?: string;\n        Quantity?: number;\n        InventoryDimensionId?: string;\n        ProductId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * StoreAddressBook entity interface.\n     */\n    export interface StoreAddressBook {\n        AddressBookId?: number;\n        StoreId?: number;\n        AddressBookTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TenderDetail entity interface.\n     */\n    export interface TenderDetail {\n        LineNumber?: number;\n        Amount?: number;\n        AmountInForeignCurrency?: number;\n        ForeignCurrencyExchangeRate?: number;\n        ForeignCurrency?: string;\n        BankBagNumber?: string;\n        TenderTypeId?: string;\n        TenderRecount?: number;\n        DenominationDetails?: DenominationDetail[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DenominationDetail entity interface.\n     */\n    export interface DenominationDetail {\n        Type?: number;\n        Currency?: string;\n        DenominationAmount?: number;\n        QuantityDeclared?: number;\n        AmountDeclared?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SalesOrderLookup entity interface.\n     */\n    export interface SalesOrderLookup {\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SalesOrderLookupByTransactionId entity interface.\n     */\n    export interface SalesOrderLookupByTransactionId extends SalesOrderLookup {\n        TransactionId?: string;\n        ChannelId?: number;\n        StoreId?: string;\n        TerminalId?: string;\n        }\n    \n    /**\n     * SalesOrderLookupBySalesId entity interface.\n     */\n    export interface SalesOrderLookupBySalesId extends SalesOrderLookup {\n        SalesId?: string;\n        }\n    \n    /**\n     * ButtonGridZone entity interface.\n     */\n    export interface ButtonGridZone {\n        ButtonGridId?: string;\n        ZoneId?: string;\n        ZoneName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ImageZone entity interface.\n     */\n    export interface ImageZone {\n        PictureId?: number;\n        PictureAsBase64?: string;\n        ZoneId?: string;\n        ZoneName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReportZone entity interface.\n     */\n    export interface ReportZone {\n        ReportRecordId?: number;\n        ZoneId?: string;\n        ZoneName?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SalesInvoiceLine entity interface.\n     */\n    export interface SalesInvoiceLine {\n        RecordId?: number;\n        ItemId?: string;\n        ProductId?: number;\n        ProductName?: string;\n        InventDimensionId?: string;\n        InventTransactionId?: string;\n        Quantity?: number;\n        Price?: number;\n        DiscountPercent?: number;\n        DiscountAmount?: number;\n        BatchId?: string;\n        NetAmount?: number;\n        Site?: string;\n        Warehouse?: string;\n        SerialId?: string;\n        ColorId?: string;\n        SizeId?: string;\n        StyleId?: string;\n        ConfigId?: string;\n        ColorName?: string;\n        SizeName?: string;\n        StyleName?: string;\n        ConfigName?: string;\n        SalesTaxGroup?: string;\n        ItemTaxGroup?: string;\n        SalesMarkup?: number;\n        TotalDiscount?: number;\n        TotalPercentageDiscount?: number;\n        LineDiscount?: number;\n        PeriodicDiscount?: number;\n        PeriodicPercentageDiscount?: number;\n        LineManualDiscountPercentage?: number;\n        LineManualDiscountAmount?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ReportRow entity interface.\n     */\n    export interface ReportRow {\n        RowData?: CommerceProperty[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FormAnnotation entity interface.\n     */\n    export interface FormAnnotation extends Annotation {\n        MenuItemLabel?: string;\n        MenuItemName?: string;\n        MenuItemType?: string;\n        }\n    \n    /**\n     * TaskGuideAnnotation entity interface.\n     */\n    export interface TaskGuideAnnotation extends Annotation {\n        RecordingValueType?: string;\n        Title?: string;\n        ExampleText?: string;\n        Hidden?: boolean;\n        GlobalId?: string;\n        }\n    \n    /**\n     * CommandArgument entity interface.\n     */\n    export interface CommandArgument {\n        Value?: string;\n        IsReference?: boolean;\n        }\n    \n    /**\n     * PropertyUserAction entity interface.\n     */\n    export interface PropertyUserAction extends FormUserAction {\n        Value?: string;\n        ValueLabel?: string;\n        PropertyName?: string;\n        ControlName?: string;\n        ControlType?: string;\n        UserActionType?: string;\n        IsReference?: boolean;\n        LabelId?: string;\n        }\n    \n    /**\n     * InfoUserAction entity interface.\n     */\n    export interface InfoUserAction extends UserAction {\n        FormId?: string;\n        ControlLabel?: string;\n        ControlLabelId?: string;\n        ControlName?: string;\n        Text?: string;\n        Notes?: string;\n        }\n    \n    /**\n     * MenuItemUserAction entity interface.\n     */\n    export interface MenuItemUserAction extends UserAction {\n        MenuItemName?: string;\n        MenuItemType?: string;\n        NavigationPath?: string[];\n        }\n    \n    /**\n     * ValidationUserAction entity interface.\n     */\n    export interface ValidationUserAction extends UserAction {\n        Name?: string;\n        Comment?: string;\n        }\n    \n    /**\n     * ArtifactSummary entity interface.\n     */\n    export interface ArtifactSummary {\n        ArtifactType?: string;\n        LanguageTags?: string[];\n        }\n    \n    /**\n     * MetadataPropertyValue entity interface.\n     */\n    export interface MetadataPropertyValue {\n        PropertyId?: string;\n        SingleValue?: string;\n        MultiValue?: MetadataText[];\n        Tags?: string[];\n        ComboBox?: string;\n        MultiSelect?: string[];\n        Links?: MetadataHypertextLink[];\n        }\n    \n    /**\n     * FormContext entity interface.\n     */\n    export interface FormContext {\n        FormID?: string;\n        FormName?: string;\n        RecordingName?: string;\n        HasMetadata?: boolean;\n        Sequence?: number;\n        Annotations?: Annotation[];\n        }\n    \n    /**\n     * ExtensibleFiscalRegistrationType entity interface.\n     */\n    export interface ExtensibleFiscalRegistrationType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * FiscalTransactionTenderLineAdjustment entity interface.\n     */\n    export interface FiscalTransactionTenderLineAdjustment {\n        TenderLineNumber?: number;\n        AdjustmentAmount?: number;\n        RecordGuid?: string;\n        TransactionId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalTransactionSalesLineAdjustment entity interface.\n     */\n    export interface FiscalTransactionSalesLineAdjustment {\n        SalesLineNumber?: number;\n        Exclude?: boolean;\n        RecordGuid?: string;\n        TransactionId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DetailedOrderStatus entity interface.\n     */\n    export interface DetailedOrderStatus extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * LineValidationResult entity interface.\n     */\n    export interface LineValidationResult {\n        LineId?: string;\n        ValidationFailures?: DataValidationFailure[];\n        }\n    \n    /**\n     * SalesAffiliationLoyaltyTier entity interface.\n     */\n    export interface SalesAffiliationLoyaltyTier extends AffiliationLoyaltyTier {\n        TransactionId?: string;\n        ChannelId?: number;\n        TerminalId?: string;\n        ReceiptId?: string;\n        StaffId?: string;\n        }\n    \n    /**\n     * TaxViewLine entity interface.\n     */\n    export interface TaxViewLine {\n        TaxId?: string;\n        TaxAmount?: number;\n        }\n    \n    /**\n     * Coupon entity interface.\n     */\n    export interface Coupon {\n        CodeId?: string;\n        Code?: string;\n        DiscountOfferId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerAccountDepositLine entity interface.\n     */\n    export interface CustomerAccountDepositLine {\n        Amount?: number;\n        CustomerAccount?: string;\n        Comment?: string;\n        StoreNumber?: string;\n        Terminal?: string;\n        Shift?: string;\n        TransactionStatusValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * Note entity interface.\n     */\n    export interface Note {\n        Title?: string;\n        Description?: string;\n        StaffId?: string;\n        RestrictionValue?: number;\n        DocuRefRecId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CustomerAttribute entity interface.\n     */\n    export interface CustomerAttribute {\n        AttributeValue?: CommercePropertyValue;\n        Units?: string;\n        RecordId?: number;\n        Name?: string;\n        KeyName?: string;\n        DataTypeValue?: number;\n        Attribute?: number;\n        NameTranslations?: TextValueTranslation[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ContactInfo entity interface.\n     */\n    export interface ContactInfo {\n        AddressTypeValue?: number;\n        RecordId?: number;\n        PartyLocationRecordId?: number;\n        PartyRecordId?: number;\n        PartyNumber?: string;\n        Description?: string;\n        Value?: string;\n        ValueExtension?: string;\n        LogisticsLocationId?: string;\n        LogisticsLocationRecordId?: number;\n        ParentLocation?: number;\n        IsPrimary?: boolean;\n        IsMobilePhone?: boolean;\n        IsPrivate?: boolean;\n        IsOptedInMarketing?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryQuantities entity interface.\n     */\n    export interface InventoryQuantities {\n        UnitOfMeasure?: string;\n        QuantityNotProcessed?: number;\n        QuantityReserved?: number;\n        QuantityPicked?: number;\n        QuantityPacked?: number;\n        QuantityInvoiced?: number;\n        QuantityOrdered?: number;\n        QuantityCanceled?: number;\n        QuantityReturned?: number;\n        }\n    \n    /**\n     * DeliveryInformation entity interface.\n     */\n    export interface DeliveryInformation {\n        DeliveryMode?: string;\n        DeliveryAddress?: Address;\n        DeliveryDate?: Date;\n        PickupTimeslotStartDateTime?: Date;\n        PickupTimeslotEndDateTime?: Date;\n        }\n    \n    /**\n     * ShiftTaxLine entity interface.\n     */\n    export interface ShiftTaxLine {\n        TaxCode?: string;\n        TaxAmount?: number;\n        TaxRate?: number;\n        NetAmount?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * TaxRegistration entity interface.\n     */\n    export interface TaxRegistration {\n        RecordId?: number;\n        Name?: string;\n        CountryRegionId?: string;\n        IsRegistrationNumberUnique?: boolean;\n        IsPrimaryAddressRestricted?: boolean;\n        TypeApplicabilityRuleRecordId?: number;\n        TypeValue?: number;\n        Description?: string;\n        DirPartyLocationRecordId?: number;\n        RegistrationNumber?: string;\n        ValidFrom?: Date;\n        ValidTo?: Date;\n        Issuer?: string;\n        IssueDate?: Date;\n        Section?: string;\n        DirectoryPartyRecordId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelTaxRegistration entity interface.\n     */\n    export interface ChannelTaxRegistration extends TaxRegistration {\n        ChannelId?: number;\n        }\n    \n    /**\n     * LinkedProduct entity interface.\n     */\n    export interface LinkedProduct {\n        ProductRecordId?: number;\n        LinkedProductRecordId?: number;\n        Quantity?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * DisplayOrderInCategory entity interface.\n     */\n    export interface DisplayOrderInCategory {\n        CategoryRecordId?: number;\n        DisplayOrder?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * RelatedProduct entity interface.\n     */\n    export interface RelatedProduct {\n        ProductRecordId?: number;\n        RelatedProductRecordId?: number;\n        CatalogId?: number;\n        RelationName?: string;\n        IsExcludedRelation?: boolean;\n        IsDirectRelation?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * KitComponent entity interface.\n     */\n    export interface KitComponent {\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ChannelReferenceAdditionalLookupCriteria entity interface.\n     */\n    export interface ChannelReferenceAdditionalLookupCriteria {\n        OrderLookupAdditionalCriteriaTypeValue?: number;\n        OrderLookupAdditionalCriteriaTypeParameterValue?: string;\n        }\n    \n    /**\n     * UserAlertFulfillmentLineParameter entity interface.\n     */\n    export interface UserAlertFulfillmentLineParameter extends FulfillmentLineParameter {\n        ItemId?: string;\n        ProductId?: number;\n        UnitOfMeasure?: string;\n        SerialNumberInLatestFulfillmentTransaction?: string;\n        LatestFulfillmentTransactionOperationTypeValue?: number;\n        }\n    \n    /**\n     * ListingIdentity entity interface.\n     */\n    export interface ListingIdentity {\n        ProductId?: number;\n        LanguageId?: string;\n        CatalogId?: number;\n        Tag?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductRatingCount entity interface.\n     */\n    export interface ProductRatingCount {\n        Rating?: number;\n        Count?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * RegularStoreHours entity interface.\n     */\n    export interface RegularStoreHours {\n        MondayOpenTime?: number;\n        MondayCloseTime?: number;\n        IsClosedOnMonday?: boolean;\n        TuesdayOpenTime?: number;\n        TuesdayCloseTime?: number;\n        IsClosedOnTuesday?: boolean;\n        WednesdayOpenTime?: number;\n        WednesdayCloseTime?: number;\n        IsClosedOnWednesday?: boolean;\n        ThursdayOpenTime?: number;\n        ThursdayCloseTime?: number;\n        IsClosedOnThursday?: boolean;\n        FridayOpenTime?: number;\n        FridayCloseTime?: number;\n        IsClosedOnFriday?: boolean;\n        SaturdayOpenTime?: number;\n        SaturdayCloseTime?: number;\n        IsClosedOnSaturday?: boolean;\n        SundayOpenTime?: number;\n        SundayCloseTime?: number;\n        IsClosedOnSunday?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ValidationPeriod entity interface.\n     */\n    export interface ValidationPeriod {\n        RecordId?: number;\n        PeriodId?: string;\n        Description?: string;\n        ValidFrom?: Date;\n        ValidTo?: Date;\n        StartingTime?: number;\n        EndingTime?: number;\n        IsTimeBounded?: number;\n        MondayStartingTime?: number;\n        MondayEndingTime?: number;\n        IsMondayTimeBounded?: number;\n        TuesdayStartingTime?: number;\n        TuesdayEndingTime?: number;\n        IsTuesdayTimeBounded?: number;\n        WednesdayStartingTime?: number;\n        WednesdayEndingTime?: number;\n        IsWednesdayTimeBounded?: number;\n        ThursdayStartingTime?: number;\n        ThursdayEndingTime?: number;\n        IsThursdayTimeBounded?: number;\n        FridayStartingTime?: number;\n        FridayEndingTime?: number;\n        IsFridayTimeBounded?: number;\n        SaturdayStartingTime?: number;\n        SaturdayEndingTime?: number;\n        IsSaturdayTimeBounded?: number;\n        SundayStartingTime?: number;\n        SundayEndingTime?: number;\n        IsSundayTimeBounded?: number;\n        IsEndTimeAfterMidnight?: number;\n        IsMondayEndTimeAfterMidnight?: number;\n        IsTuesdayEndTimeAfterMidnight?: number;\n        IsWednesdayEndTimeAfterMidnight?: number;\n        IsThursdayEndTimeAfterMidnight?: number;\n        IsFridayEndTimeAfterMidnight?: number;\n        IsSaturdayEndTimeAfterMidnight?: number;\n        IsSundayEndTimeAfterMidnight?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * PriceLookupHeaderContext entity interface.\n     */\n    export interface PriceLookupHeaderContext {\n        CustomerAccountNumber?: string;\n        AffiliationLoyaltyTierLines?: AffiliationLoyaltyTier[];\n        SalesOrderProperties?: AttributeValueBase[];\n        ChannelId?: number;\n        }\n    \n    /**\n     * PriceLookupLineContext entity interface.\n     */\n    export interface PriceLookupLineContext {\n        ProductRecordId?: number;\n        UnitOfMeasureSymbol?: string;\n        InventorySiteId?: string;\n        InventoryLocationId?: string;\n        DeliveryMode?: string;\n        CatalogId?: number;\n        SalesLineProperties?: AttributeValueBase[];\n        }\n    \n    /**\n     * ClientBookChange entity interface.\n     */\n    export interface ClientBookChange {\n        FromStaffId?: string;\n        ToStaffId?: string;\n        CustomerId?: string;\n        }\n    \n    /**\n     * ChannelProfile entity interface.\n     */\n    export interface ChannelProfile {\n        ProfileProperties?: ChannelProfileProperty[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * RetailSharedConfigurationParameter entity interface.\n     */\n    export interface RetailSharedConfigurationParameter {\n        RecordId?: number;\n        Name?: string;\n        Value?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CDXDataStore entity interface.\n     */\n    export interface CDXDataStore {\n        Name?: string;\n        RecId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * UploadJobPackageRequest entity interface.\n     */\n    export interface UploadJobPackageRequest {\n        JobId?: string;\n        RerunUploadSessionId?: number;\n        TargetStorage?: string;\n        UploadJobDefintion?: string;\n        UploadUrl?: string;\n        }\n    \n    /**\n     * ExtensibleAuditEventType entity interface.\n     */\n    export interface ExtensibleAuditEventType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * AuditEventFiscalTransaction entity interface.\n     */\n    export interface AuditEventFiscalTransaction {\n        EventId?: number;\n        LineNumber?: number;\n        RegisterResponse?: string;\n        Store?: string;\n        TransDateTime?: Date;\n        Terminal?: string;\n        UploadType?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AuditEventFiscalRegistrationLine entity interface.\n     */\n    export interface AuditEventFiscalRegistrationLine {\n        EventId?: number;\n        RegisterResponse?: string;\n        StoreId?: string;\n        TransactionDateTime?: Date;\n        TerminalId?: string;\n        UploadType?: string;\n        UploadTypeValue?: number;\n        StaffId?: string;\n        RecordGuid?: string;\n        RegistrationStatusValue?: number;\n        RegistrationProcessId?: string;\n        ConnectorGroup?: string;\n        ConnectorName?: string;\n        ConnectorFunctionalityProfileId?: string;\n        RegisterInfo?: string;\n        CreatedDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * NotificationDetail entity interface.\n     */\n    export interface NotificationDetail {\n        ActionProperty?: string;\n        ItemCount?: number;\n        DisplayText?: string;\n        IsNew?: boolean;\n        LastUpdatedDateTimeStr?: string;\n        IsSuccess?: boolean;\n        IsLiveContentOnly?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalIntegrationDocumentContext entity interface.\n     */\n    export interface FiscalIntegrationDocumentContext {\n        AuditEvent?: AuditEvent;\n        SignatureData?: FiscalIntegrationSequentialSignatureData[];\n        }\n    \n    /**\n     * FiscalIntegrationDocumentAdjustment entity interface.\n     */\n    export interface FiscalIntegrationDocumentAdjustment {\n        TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n        SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalIntegrationSignatureDataContext entity interface.\n     */\n    export interface FiscalIntegrationSignatureDataContext {\n        SequentialSignatureKey?: string;\n        SequentialNumber?: number;\n        }\n    \n    /**\n     * FiscalIntegrationRegistrationProcessLine entity interface.\n     */\n    export interface FiscalIntegrationRegistrationProcessLine {\n        RegistrationProcessId?: string;\n        SequenceNumber?: number;\n        Priority?: number;\n        ConnectorTypeValue?: number;\n        FunctionalityProfileGroupId?: string;\n        AllowSkip?: boolean;\n        AllowMarkAsRegistered?: boolean;\n        AllowPostpone?: boolean;\n        Optional?: boolean;\n        RegistrationSettings?: FiscalIntegrationRegistrationSettings;\n        SupportedFiscalEventTypes?: number[];\n        SupportedNonFiscalEventTypes?: number[];\n        SequentialKeys?: string[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * FiscalIntegrationRegistrationSettings entity interface.\n     */\n    export interface FiscalIntegrationRegistrationSettings {\n        SkipReasonCode?: string;\n        MarkAsRegisteredReasonCode?: string;\n        PostponeReasonCode?: string;\n        }\n    \n    /**\n     * FiscalIntegrationFiscalRegistrationProcessSummaryLine entity interface.\n     */\n    export interface FiscalIntegrationFiscalRegistrationProcessSummaryLine {\n        RegistrationProcessLine?: FiscalIntegrationRegistrationProcessLine;\n        ConnectorName?: string;\n        ConnectorTypeValue?: number;\n        ConnectorLocationValue?: number;\n        ConnectionProperties?: FiscalIntegrationConfigurationProperty[];\n        ErrorCode?: number;\n        }\n    \n    /**\n     * FiscalIntegrationConfigurationProperty entity interface.\n     */\n    export interface FiscalIntegrationConfigurationProperty {\n        LabelName?: string;\n        Value?: string;\n        }\n    \n    /**\n     * FiscalIntegrationServiceFailureDetails entity interface.\n     */\n    export interface FiscalIntegrationServiceFailureDetails {\n        FailureTypeValue?: number;\n        IsRetryAllowed?: boolean;\n        ErrorCode?: string;\n        ErrorMessage?: string;\n        }\n    \n    /**\n     * CategoryPath entity interface.\n     */\n    export interface CategoryPath {\n        Segments?: CategoryPathSegment[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * CategoryPathSegment entity interface.\n     */\n    export interface CategoryPathSegment {\n        CategoryName?: string;\n        CategoryId?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * SalesLineConfirmedShipDateChange entity interface.\n     */\n    export interface SalesLineConfirmedShipDateChange {\n        LineNumber?: number;\n        ConfirmedShipDate?: Date;\n        }\n    \n    /**\n     * AttachedService entity interface.\n     */\n    export interface AttachedService {\n        BaseUrl?: string;\n        ServiceId?: string;\n        StatusValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ExtensibleInventoryJournalType entity interface.\n     */\n    export interface ExtensibleInventoryJournalType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * CustomerTimelineItemType entity interface.\n     */\n    export interface CustomerTimelineItemType {\n        Description?: string;\n        TypeId?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductWarehouseInventoryAvailability entity interface.\n     */\n    export interface ProductWarehouseInventoryAvailability {\n        ProductId?: number;\n        InventLocationId?: string;\n        DataAreaId?: string;\n        PhysicalInventory?: number;\n        PhysicalReserved?: number;\n        TotalAvailable?: number;\n        TotalAvailableInventoryLevelLabel?: string;\n        TotalAvailableInventoryLevelCode?: string;\n        OrderedInTotal?: number;\n        PhysicalAvailable?: number;\n        PhysicalAvailableInventoryLevelLabel?: string;\n        PhysicalAvailableInventoryLevelCode?: string;\n        LastInventoryTransactionId?: number;\n        UnpostedOnlineOrderedQuantity?: number;\n        UnpostedFulfilledQuantity?: number;\n        IsInventoryAvailabilityQuantityReturned?: boolean;\n        UnprocessedQuantity?: number;\n        QuantityUnitTypeValue?: number;\n        UnitOfMeasure?: string;\n        MaximumPurchasablePhysicalAvailableQuantity?: number;\n        MaximumPurchasableTotalAvailableQuantity?: number;\n        SumUncountedTransactions?: number;\n        IgnoreQuantityUnitType?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * QuantityUnitType entity interface.\n     */\n    export interface QuantityUnitType extends ExtensibleEnumeration {\n        }\n    \n    /**\n     * ProductInventoryAvailability entity interface.\n     */\n    export interface ProductInventoryAvailability {\n        ProductId?: number;\n        DataAreaId?: string;\n        TotalAvailableQuantity?: number;\n        TotalAvailableInventoryLevelLabel?: string;\n        TotalAvailableInventoryLevelCode?: string;\n        PhysicalAvailableQuantity?: number;\n        PhysicalAvailableInventoryLevelLabel?: string;\n        PhysicalAvailableInventoryLevelCode?: string;\n        QuantityUnitTypeValue?: number;\n        UnitOfMeasure?: string;\n        MaximumPurchasablePhysicalAvailableQuantity?: number;\n        MaximumPurchasableTotalAvailableQuantity?: number;\n        IgnoreQuantityUnitType?: boolean;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * InventoryQuantity entity interface.\n     */\n    export interface InventoryQuantity {\n        ProductId: number;\n        ItemId?: string;\n        DataAreaId?: string;\n        ColorId?: string;\n        SizeId?: string;\n        StyleId?: string;\n        ConfigurationId?: string;\n        InventoryLocationId?: string;\n        InventorySiteId?: string;\n        TotalAvailable: number;\n        PhysicalAvailable: number;\n        PhysicalInventory: number;\n        PhysicalReserved: number;\n        OrderedInTotal: number;\n        }\n    \n    /**\n     * ProductUnit entity interface.\n     */\n    export interface ProductUnit {\n        ProductId?: number;\n        UnitOfMeasure?: string;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ParameterSet entity interface.\n     */\n    export interface ParameterSet {\n        }\n    \n    /**\n     * CartLineValidationResults entity interface.\n     */\n    export interface CartLineValidationResults {\n        ValidationResultsByLineId?: CartLineValidationResultsByLineId;\n        ValidationFailuresByCartLines?: LineDataValidationFailure[];\n        }\n    \n    /**\n     * CommerceException entity interface.\n     */\n    export interface CommerceException {\n        LocalizedMessage?: string;\n        ErrorResourceId?: string;\n        }\n    \n    /**\n     * DataValidationException entity interface.\n     */\n    export interface DataValidationException extends CommerceException {\n        ValidationResults?: DataValidationFailure[];\n        }\n    \n    /**\n     * MissingRequiredReasonCodeException entity interface.\n     */\n    export interface MissingRequiredReasonCodeException extends DataValidationException {\n        RequiredReasonCodes?: ReasonCode[];\n        TransactionRequiredReasonCodeIds?: string[];\n        ReasonCodeRequirements?: ReasonCodeRequirement[];\n        }\n    \n    /**\n     * SecurityException entity interface.\n     */\n    export interface SecurityException extends CommerceException {\n        }\n    \n    /**\n     * DeviceAuthenticationException entity interface.\n     */\n    export interface DeviceAuthenticationException extends SecurityException {\n        }\n    \n    /**\n     * HeadquarterTransactionServiceException entity interface.\n     */\n    export interface HeadquarterTransactionServiceException extends CommerceException {\n        }\n    \n    /**\n     * UserAuthenticationException entity interface.\n     */\n    export interface UserAuthenticationException extends SecurityException {\n        }\n    \n    /**\n     * UserAuthorizationException entity interface.\n     */\n    export interface UserAuthorizationException extends SecurityException {\n        }\n    \n    /**\n     * FeatureNotSupportedException entity interface.\n     */\n    export interface FeatureNotSupportedException extends CommerceException {\n        }\n    \n    /**\n     * CartValidationException entity interface.\n     */\n    export interface CartValidationException extends DataValidationException {\n        }\n    \n    /**\n     * TenderValidationException entity interface.\n     */\n    export interface TenderValidationException extends DataValidationException {\n        TenderTypeId?: string;\n        }\n    \n    /**\n     * CommerceDataExchangeException entity interface.\n     */\n    export interface CommerceDataExchangeException extends CommerceException {\n        }\n    \n    /**\n     * ExtensibleEnumerationException entity interface.\n     */\n    export interface ExtensibleEnumerationException extends CommerceException {\n        }\n    \n    /**\n     * TaskManagementException entity interface.\n     */\n    export interface TaskManagementException extends CommerceException {\n        TaskManagementErrors?: TaskManagementError[];\n        }\n    \n    /**\n     * TaskManagementServerException entity interface.\n     */\n    export interface TaskManagementServerException extends TaskManagementException {\n        }\n    \n    /**\n     * TaskManagementClientException entity interface.\n     */\n    export interface TaskManagementClientException extends TaskManagementException {\n        }\n    \n    /**\n     * RemoteServiceNotAvailableException entity interface.\n     */\n    export interface RemoteServiceNotAvailableException extends CommerceException {\n        }\n    \n    /**\n     * PaymentException entity interface.\n     */\n    export interface PaymentException extends CommerceException {\n        AdditionalContext?: string;\n        PaymentSdkErrors?: PaymentError[];\n        }\n    \n    /**\n     * DataValidationFailure entity interface.\n     */\n    export interface DataValidationFailure {\n        ErrorContext?: string;\n        ErrorResourceId?: string;\n        MemberNames?: string[];\n        LocalizedMessage?: string;\n        }\n    \n    /**\n     * ItemDiscontinuedException entity interface.\n     */\n    export interface ItemDiscontinuedException extends CommerceException {\n        RemovedUnavailableItemIds?: string;\n        }\n    \n    /**\n     * InventoryDocumentLockedByOtherTerminalException entity interface.\n     */\n    export interface InventoryDocumentLockedByOtherTerminalException extends DataValidationException {\n        WorkingTerminalId?: string;\n        CurrentTerminalId?: string;\n        }\n    \n    /**\n     * InventoryDocumentExceedMaximumQuantityException entity interface.\n     */\n    export interface InventoryDocumentExceedMaximumQuantityException extends DataValidationException {\n        MaximumQuantity: number;\n        AllowOverDelivery: boolean;\n        }\n    \n    /**\n     * ProductPricingConfigurationException entity interface.\n     */\n    export interface ProductPricingConfigurationException extends CommerceException {\n        ProductPricingConfigurationErrors?: ProductPricingConfigurationError[];\n        }\n    \n    /**\n     * CartLineValidationResultsByLineId entity interface.\n     */\n    export interface CartLineValidationResultsByLineId {\n        LineIdToProductBehaviorMap?: KeyValuePair_2OfString_ProductBehavior[];\n        ValidationResultsPairs?: LineValidationResult[];\n        }\n    \n    /**\n     * CommerceRuntimeCompositionException entity interface.\n     */\n    export interface CommerceRuntimeCompositionException extends CommerceException {\n        }\n    \n    /**\n     * ChecklistTaskValidationException entity interface.\n     */\n    export interface ChecklistTaskValidationException extends DataValidationException {\n        }\n    \n    /**\n     * InsufficientCredentialLengthException entity interface.\n     */\n    export interface InsufficientCredentialLengthException extends DataValidationException {\n        ActualLength?: number;\n        MinLength?: number;\n        }\n    \n    /**\n     * ExtensibleEnumerationCacheException entity interface.\n     */\n    export interface ExtensibleEnumerationCacheException extends CommerceException {\n        }\n    \n    /**\n     * ExtensionConfigurationException entity interface.\n     */\n    export interface ExtensionConfigurationException extends CommerceException {\n        }\n    \n    /**\n     * StaffPasswordExpiredException entity interface.\n     */\n    export interface StaffPasswordExpiredException extends UserAuthenticationException {\n        StaffId?: string;\n        }\n    \n    /**\n     * ChannelConfigurationNotFoundException entity interface.\n     */\n    export interface ChannelConfigurationNotFoundException extends CommerceException {\n        }\n    \n    /**\n     * CopilotServiceException entity interface.\n     */\n    export interface CopilotServiceException extends CommerceException {\n        }\n    \n    /**\n     * PaymentConfigurationException entity interface.\n     */\n    export interface PaymentConfigurationException extends CommerceException {\n        PaymentConfigurationSdkErrors?: string[];\n        }\n    \n    /**\n     * SecretConfigurationNotFoundException entity interface.\n     */\n    export interface SecretConfigurationNotFoundException extends CommerceException {\n        }\n    \n    /**\n     * TenderTypePolicy entity interface.\n     */\n    export interface TenderTypePolicy {\n        OriginalTenderType?: string;\n        AllowedReturnTenderTypes?: string[];\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * AccountStatementRequest entity interface.\n     */\n    export interface AccountStatementRequest {\n        RequestedUserId?: string;\n        IsForFullOrganization?: boolean;\n        FromDate?: Date;\n        ToDate?: Date;\n        RequestingUserEmail?: string;\n        DeliveryTypeValue?: number;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * BusinessPartnerOperationRequestDetails entity interface.\n     */\n    export interface BusinessPartnerOperationRequestDetails {\n        InvoiceId?: string;\n        AccountStatementStartDateTime?: Date;\n        AccountStatementEndDateTime?: Date;\n        ExtensionProperties?: CommerceProperty[];\n        }\n    \n    /**\n     * ProductPricingConfigurationError entity interface.\n     */\n    export interface ProductPricingConfigurationError {\n        ProductId?: string;\n        ErrorResourceId?: string;\n        }\n    \n    /**\n     * TaskManagementError entity interface.\n     */\n    export interface TaskManagementError {\n        ErrorResourceId?: string;\n        LocalizedMessage?: string;\n        TaskId?: string;\n        }\n    \n    /**\n     * LineDataValidationFailure entity interface.\n     */\n    export interface LineDataValidationFailure {\n        DataValidationFailure?: DataValidationFailure;\n        LineIndex?: number;\n        }\n    \n    /**\n     * WrongEndpointException entity interface.\n     */\n    export interface WrongEndpointException extends CommerceException {\n        RedirectUri?: string;\n        }\n    \n    /**\n     * BadRequestException entity interface.\n     */\n    export interface BadRequestException extends CommerceException {\n        }\n    \n    /**\n     * ChargeTaxMeasure entity interface.\n     */\n    export interface ChargeTaxMeasure extends TaxMeasure {\n        MarkupLineNumber?: number;\n        }\n    \n    /**\n     * KeyValuePair_2OfString_ProductBehavior entity interface.\n     */\n    export interface KeyValuePair_2OfString_ProductBehavior {\n        }\n    \n    /**\n     * CompilationFailedException entity interface.\n     */\n    export interface CompilationFailedException extends CommerceException {\n        }\n    \n    /**\n     * FranceExtensibleAuditEventType entity interface.\n     */\n    export interface FranceExtensibleAuditEventType extends ExtensibleAuditEventType {\n        }\n    \n    /**\n     * AustriaExtensibleAuditEventType entity interface.\n     */\n    export interface AustriaExtensibleAuditEventType extends ExtensibleAuditEventType {\n        }\n    ","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { Cart, CartSearchCriteria, TokenizedPaymentCard, CartTenderLine, SalesOrder, LoyaltyPointRedemptionEstimate, TenderLine, LineShippingAddress, SalesLineDeliveryOption, CartDeliveryPreferences, Address, DeliveryOption, LineDeliverySpecification, DeliverySpecification, ReasonCodeLine, CartLine, ReturnCartLine, TenderDiscountLine, ReceiptRetrievalCriteria, Receipt, RecallInvoicedSalesLineLookup, CardPaymentAcceptSettings, CommerceProperty, CardPaymentAcceptPoint, RetrievePaymentResultSettings, CardPaymentAcceptResult, RecallOrderSearchCriteria, CartPromotions, CartPromotionLine, CartLineUserAlerts, ChargeCode, TenderTypeAmount, CartConfiguration, CartLineValidationResults } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function cartsQuery(id?: string): DataServiceQuery {\n        var key = (id) ? { Id: id } : null;\n        return new DataServiceQuery(\"Carts\", \"Cart\", \"CartClass\", key);\n    }\n    \n    export function createCreateInput(entity: Cart): IDataServiceRequest {\n        return cartsQuery().create(entity);\n    }\n\n    export function createCartAsync(context: IContext, entity: Cart): AsyncResult<Cart> {\n        const request = createCreateInput(entity);\n        return executeAction<Cart>(request, context);\n    }\n\n    export function createUpdateInput(entity: Cart): IDataServiceRequest {\n        return cartsQuery(entity.Id).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: Cart): AsyncResult<Cart> {\n        const request = createUpdateInput(entity);\n        return executeAction<Cart>(request, context);\n    }\n\n    export function createDeleteAsync(entity: Cart): IDataServiceRequest {\n        return cartsQuery(entity.Id).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: Cart): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(id: string): IDataServiceRequest {\n        return cartsQuery(id).read();\n    }\n\n    export function readAsync(context: IContext, id: string): AsyncResult<Cart> {\n        const request = createReadAsync(id);\n        return executeAction<Cart>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return cartsQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<Cart[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<Cart[]>(request, context);\n    }\n    \n    export function createSearchInput(queryResultSettings: IQueryResultSettings, cartSearchCriteria?: CartSearchCriteria | null): IDataServiceRequest {      \n        const query = cartsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('Search', true, \n             'CartClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Cart'}, {cartSearchCriteria: cartSearchCriteria });\n    }    \n    \n    export function searchAsync(context: IContext, cartSearchCriteria?: CartSearchCriteria | null):AsyncResult<Cart[]> {\n        const request = createSearchInput(context.queryResultSettings, cartSearchCriteria);\n        return executeAction<Cart[]>(request, context);\n    }          \n          \n    export function createCheckoutInput(id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null, checkoutLocation?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('Checkout', true, \n             'SalesOrderClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {receiptEmail: receiptEmail, tokenizedPaymentCard: tokenizedPaymentCard, receiptNumberSequence: receiptNumberSequence, cartTenderLines: cartTenderLines, cartVersion: cartVersion, checkoutLocation: checkoutLocation });\n    }    \n    \n    export function checkoutAsync(context: IContext, id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null, checkoutLocation?: number | null):AsyncResult<SalesOrder> {\n        const request = createCheckoutInput(id, receiptEmail, tokenizedPaymentCard, receiptNumberSequence, cartTenderLines, cartVersion, checkoutLocation);\n        return executeAction<SalesOrder>(request, context);\n    }          \n          \n    export function createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id: string, loyaltyCardId?: string | null, currencyCode?: string | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('GetMaxLoyaltyPointsToRedeemForTransactionBalance', true, \n             'LoyaltyPointRedemptionEstimateClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'LoyaltyPointRedemptionEstimate'}, {loyaltyCardId: loyaltyCardId, currencyCode: currencyCode });\n    }    \n    \n    export function getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync(context: IContext, id: string, loyaltyCardId?: string | null, currencyCode?: string | null):AsyncResult<LoyaltyPointRedemptionEstimate> {\n        const request = createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id, loyaltyCardId, currencyCode);\n        return executeAction<LoyaltyPointRedemptionEstimate>(request, context);\n    }          \n          \n    export function createGetPaymentsHistoryInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetPaymentsHistory', true, \n             'TenderLineClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, { });\n    }    \n    \n    export function getPaymentsHistoryAsync(context: IContext, id: string):AsyncResult<TenderLine[]> {\n        const request = createGetPaymentsHistoryInput(context.queryResultSettings, id);\n        return executeAction<TenderLine[]>(request, context);\n    }          \n          \n    export function createGetLineDeliveryOptionsByChannelIdInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLineDeliveryOptionsByChannelId', true, \n             'SalesLineDeliveryOptionClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, channelId: channelId, filterOption: filterOption });\n    }    \n    \n    export function getLineDeliveryOptionsByChannelIdAsync(context: IContext, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null):AsyncResult<SalesLineDeliveryOption[]> {\n        const request = createGetLineDeliveryOptionsByChannelIdInput(context.queryResultSettings, id, lineShippingAddresses, channelId, filterOption);\n        return executeAction<SalesLineDeliveryOption[]>(request, context);\n    }          \n          \n    export function createGetLineDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetLineDeliveryOptions', true, \n             'SalesLineDeliveryOptionClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, filterOption: filterOption });\n    }    \n    \n    export function getLineDeliveryOptionsAsync(context: IContext, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null):AsyncResult<SalesLineDeliveryOption[]> {\n        const request = createGetLineDeliveryOptionsInput(context.queryResultSettings, id, lineShippingAddresses, filterOption);\n        return executeAction<SalesLineDeliveryOption[]>(request, context);\n    }          \n          \n    export function createGetDeliveryPreferencesInput(id: string, ): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('GetDeliveryPreferences', true, \n             'CartDeliveryPreferencesClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'CartDeliveryPreferences'}, { });\n    }    \n    \n    export function getDeliveryPreferencesAsync(context: IContext, id: string):AsyncResult<CartDeliveryPreferences> {\n        const request = createGetDeliveryPreferencesInput(id);\n        return executeAction<CartDeliveryPreferences>(request, context);\n    }          \n          \n    export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, \n             'DeliveryOptionClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'DeliveryOption'}, {shippingAddress: shippingAddress, cartLineIds: cartLineIds, filterOption: filterOption, ignoreLinesWithDeliveryMode: ignoreLinesWithDeliveryMode });\n    }    \n    \n    export function getDeliveryOptionsAsync(context: IContext, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null):AsyncResult<DeliveryOption[]> {\n        const request = createGetDeliveryOptionsInput(context.queryResultSettings, id, shippingAddress, cartLineIds, filterOption, ignoreLinesWithDeliveryMode);\n        return executeAction<DeliveryOption[]>(request, context);\n    }          \n          \n    export function createUpdateLineDeliverySpecificationsInput(id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('UpdateLineDeliverySpecifications', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {lineDeliverySpecifications: lineDeliverySpecifications });\n    }    \n    \n    export function updateLineDeliverySpecificationsAsync(context: IContext, id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null):AsyncResult<Cart> {\n        const request = createUpdateLineDeliverySpecificationsInput(id, lineDeliverySpecifications);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createUpdateDeliverySpecificationInput(id: string, deliverySpecification?: DeliverySpecification | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('UpdateDeliverySpecification', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {deliverySpecification: deliverySpecification });\n    }    \n    \n    export function updateDeliverySpecificationAsync(context: IContext, id: string, deliverySpecification?: DeliverySpecification | null):AsyncResult<Cart> {\n        const request = createUpdateDeliverySpecificationInput(id, deliverySpecification);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createAddChargeInput(id: string, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddCharge', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n    }    \n    \n    export function addChargeAsync(context: IContext, id: string, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult<Cart> {\n        const request = createAddChargeInput(id, moduleTypeValue, chargeCode, amount);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createOverrideChargeInput(id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('OverrideCharge', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n    }    \n    \n    export function overrideChargeAsync(context: IContext, id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult<Cart> {\n        const request = createOverrideChargeInput(id, chargeLineId, amount, reasonCodeLines);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createAddCartLineChargeInput(id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddCartLineCharge', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n    }    \n    \n    export function addCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult<Cart> {\n        const request = createAddCartLineChargeInput(id, cartLineId, moduleTypeValue, chargeCode, amount);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createOverrideCartLineChargeInput(id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('OverrideCartLineCharge', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n    }    \n    \n    export function overrideCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult<Cart> {\n        const request = createOverrideCartLineChargeInput(id, cartLineId, chargeLineId, amount, reasonCodeLines);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createVoidInput(id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('Void', true, \n             'SalesOrderClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {reasonCodeLines: reasonCodeLines, cartVersion: cartVersion });\n    }    \n    \n    export function voidAsync(context: IContext, id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null):AsyncResult<SalesOrder> {\n        const request = createVoidInput(id, reasonCodeLines, cartVersion);\n        return executeAction<SalesOrder>(request, context);\n    }          \n          \n    export function createAddCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddCartLines', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n    }    \n    \n    export function addCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult<Cart> {\n        const request = createAddCartLinesInput(id, cartLines, cartVersion);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createAddReturnCartLinesInput(id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddReturnCartLines', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {returnCartLines: returnCartLines, returnTransactionSearchLocation: returnTransactionSearchLocation, cartVersion: cartVersion });\n    }    \n    \n    export function addReturnCartLinesAsync(context: IContext, id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null):AsyncResult<Cart> {\n        const request = createAddReturnCartLinesInput(id, returnCartLines, returnTransactionSearchLocation, cartVersion);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createUpdateCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('UpdateCartLines', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n    }    \n    \n    export function updateCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult<Cart> {\n        const request = createUpdateCartLinesInput(id, cartLines, cartVersion);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createVoidCartLinesInput(id: string, cartLines?: CartLine[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('VoidCartLines', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines });\n    }    \n    \n    export function voidCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult<Cart> {\n        const request = createVoidCartLinesInput(id, cartLines);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createRemoveCartLinesInput(id: string, cartLineIds?: string[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('RemoveCartLines', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineIds: cartLineIds });\n    }    \n    \n    export function removeCartLinesAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult<Cart> {\n        const request = createRemoveCartLinesInput(id, cartLineIds);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createAddTenderLineInput(id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddTenderLine', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartTenderLine: cartTenderLine, cartVersion: cartVersion });\n    }    \n    \n    export function addTenderLineAsync(context: IContext, id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null):AsyncResult<Cart> {\n        const request = createAddTenderLineInput(id, cartTenderLine, cartVersion);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createCalculateTenderDiscountInput(id: string, tenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('CalculateTenderDiscount', true, \n             'TenderDiscountLineClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'TenderDiscountLine'}, {tenderLine: tenderLine, cartVersion: cartVersion });\n    }    \n    \n    export function calculateTenderDiscountAsync(context: IContext, id: string, tenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult<TenderDiscountLine> {\n        const request = createCalculateTenderDiscountInput(id, tenderLine, cartVersion);\n        return executeAction<TenderDiscountLine>(request, context);\n    }          \n          \n    export function createAddPreprocessedTenderLineInput(id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddPreprocessedTenderLine', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {preprocessedTenderLine: preprocessedTenderLine, cartVersion: cartVersion });\n    }    \n    \n    export function addPreprocessedTenderLineAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult<Cart> {\n        const request = createAddPreprocessedTenderLineInput(id, preprocessedTenderLine, cartVersion);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createValidateTenderLineForAddInput(id: string, tenderLine?: TenderLine | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('ValidateTenderLineForAdd', true, '', '', {bypassCache: 'get', returnEntity: ''}, {tenderLine: tenderLine });\n    }    \n    \n    export function validateTenderLineForAddAsync(context: IContext, id: string, tenderLine?: TenderLine | null):AsyncResult<NullResult> {\n        const request = createValidateTenderLineForAddInput(id, tenderLine);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createUpdateTenderLineSignatureInput(id: string, tenderLineId?: string | null, signatureData?: string | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('UpdateTenderLineSignature', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, signatureData: signatureData });\n    }    \n    \n    export function updateTenderLineSignatureAsync(context: IContext, id: string, tenderLineId?: string | null, signatureData?: string | null):AsyncResult<Cart> {\n        const request = createUpdateTenderLineSignatureInput(id, tenderLineId, signatureData);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createGetDeclinedOrVoidedCardReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetDeclinedOrVoidedCardReceipts', true, \n             'ReceiptClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {preprocessedTenderLine: preprocessedTenderLine, receiptRetrievalCriteria: receiptRetrievalCriteria });\n    }    \n    \n    export function getDeclinedOrVoidedCardReceiptsAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult<Receipt[]> {\n        const request = createGetDeclinedOrVoidedCardReceiptsInput(context.queryResultSettings, id, preprocessedTenderLine, receiptRetrievalCriteria);\n        return executeAction<Receipt[]>(request, context);\n    }          \n          \n    export function createCopyInput(id: string, targetCartType: number): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('Copy', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {targetCartType: targetCartType });\n    }    \n    \n    export function copyAsync(context: IContext, id: string, targetCartType: number):AsyncResult<Cart> {\n        const request = createCopyInput(id, targetCartType);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createAddInvoicedSalesLinesToCartInput(transactionId: string | null, invoicedSalesLinesIds: number[]): IDataServiceRequest {      \n        const query = cartsQuery();\n        return query.createDataServiceRequestForOperation('AddInvoicedSalesLinesToCart', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoicedSalesLinesIds: invoicedSalesLinesIds });\n    }    \n    \n    export function addInvoicedSalesLinesToCartAsync(context: IContext, transactionId: string | null, invoicedSalesLinesIds: number[]):AsyncResult<Cart> {\n        const request = createAddInvoicedSalesLinesToCartInput(transactionId, invoicedSalesLinesIds);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createRecallInvoicedSalesLinesInput(id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('RecallInvoicedSalesLines', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {recallInvoicedSalesLineLookups: recallInvoicedSalesLineLookups });\n    }    \n    \n    export function recallInvoicedSalesLinesAsync(context: IContext, id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null):AsyncResult<Cart> {\n        const request = createRecallInvoicedSalesLinesInput(id, recallInvoicedSalesLineLookups);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createVoidTenderLineInput(id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('VoidTenderLine', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, reasonCodeLines: reasonCodeLines, isPreprocessed: isPreprocessed, forceVoid: forceVoid });\n    }    \n    \n    export function voidTenderLineAsync(context: IContext, id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null):AsyncResult<Cart> {\n        const request = createVoidTenderLineInput(id, tenderLineId, reasonCodeLines, isPreprocessed, forceVoid);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createIssueGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('IssueGiftCard', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n    }    \n    \n    export function issueGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult<Cart> {\n        const request = createIssueGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createRefillGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('RefillGiftCard', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n    }    \n    \n    export function refillGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult<Cart> {\n        const request = createRefillGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createCashOutGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('CashOutGiftCard', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n    }    \n    \n    export function cashOutGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult<Cart> {\n        const request = createCashOutGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createSuspendInput(id: string, ): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('Suspend', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n    }    \n    \n    export function suspendAsync(context: IContext, id: string):AsyncResult<Cart> {\n        const request = createSuspendInput(id);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createSuspendWithJournalInput(id: string, journalCartId?: string | null, receiptNumberSequence?: string | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('SuspendWithJournal', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {journalCartId: journalCartId, receiptNumberSequence: receiptNumberSequence });\n    }    \n    \n    export function suspendWithJournalAsync(context: IContext, id: string, journalCartId?: string | null, receiptNumberSequence?: string | null):AsyncResult<Cart> {\n        const request = createSuspendWithJournalInput(id, journalCartId, receiptNumberSequence);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createResumeInput(id: string, ): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('Resume', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n    }    \n    \n    export function resumeAsync(context: IContext, id: string):AsyncResult<Cart> {\n        const request = createResumeInput(id);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createResumeFromReceiptIdInput(receiptId?: string | null): IDataServiceRequest {      \n        const query = cartsQuery();\n        return query.createDataServiceRequestForOperation('ResumeFromReceiptId', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {receiptId: receiptId });\n    }    \n    \n    export function resumeFromReceiptIdAsync(context: IContext, receiptId?: string | null):AsyncResult<Cart> {\n        const request = createResumeFromReceiptIdInput(receiptId);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createRemoveDiscountCodesInput(id: string, discountCodes?: string[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('RemoveDiscountCodes', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCodes: discountCodes });\n    }    \n    \n    export function removeDiscountCodesAsync(context: IContext, id: string, discountCodes?: string[] | null):AsyncResult<Cart> {\n        const request = createRemoveDiscountCodesInput(id, discountCodes);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createGetSuspendedInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = cartsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetSuspended', true, \n             'CartClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Cart'}, { });\n    }    \n    \n    export function getSuspendedAsync(context: IContext, ):AsyncResult<Cart[]> {\n        const request = createGetSuspendedInput(context.queryResultSettings, );\n        return executeAction<Cart[]>(request, context);\n    }          \n          \n    export function createOverrideCartLinePriceInput(id: string, cartLineId: string | null, price: number): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('OverrideCartLinePrice', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price });\n    }    \n    \n    export function overrideCartLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number):AsyncResult<Cart> {\n        const request = createOverrideCartLinePriceInput(id, cartLineId, price);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createGetCardPaymentAcceptPointInput(id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('GetCardPaymentAcceptPoint', true, \n             'CardPaymentAcceptPointClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'CardPaymentAcceptPoint'}, {cardPaymentAcceptSettings: cardPaymentAcceptSettings, extensionProperties: extensionProperties });\n    }    \n    \n    export function getCardPaymentAcceptPointAsync(context: IContext, id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null):AsyncResult<CardPaymentAcceptPoint> {\n        const request = createGetCardPaymentAcceptPointInput(id, cardPaymentAcceptSettings, extensionProperties);\n        return executeAction<CardPaymentAcceptPoint>(request, context);\n    }          \n          \n    export function createRetrieveCardPaymentAcceptResultInput(resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null): IDataServiceRequest {      \n        const query = cartsQuery();\n        return query.createDataServiceRequestForOperation('RetrieveCardPaymentAcceptResult', true, \n             'CardPaymentAcceptResultClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CardPaymentAcceptResult'}, {resultAccessCode: resultAccessCode, extensionProperties: extensionProperties, cartId: cartId, settings: settings });\n    }    \n    \n    export function retrieveCardPaymentAcceptResultAsync(context: IContext, resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null):AsyncResult<CardPaymentAcceptResult> {\n        const request = createRetrieveCardPaymentAcceptResultInput(resultAccessCode, extensionProperties, cartId, settings);\n        return executeAction<CardPaymentAcceptResult>(request, context);\n    }          \n          \n    export function createRecallOrderInput(transactionId?: string | null, salesId?: string | null, recallOrderSearchCriteria?: RecallOrderSearchCriteria | null): IDataServiceRequest {      \n        const query = cartsQuery();\n        return query.createDataServiceRequestForOperation('RecallOrder', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, salesId: salesId, recallOrderSearchCriteria: recallOrderSearchCriteria });\n    }    \n    \n    export function recallOrderAsync(context: IContext, transactionId?: string | null, salesId?: string | null, recallOrderSearchCriteria?: RecallOrderSearchCriteria | null):AsyncResult<Cart> {\n        const request = createRecallOrderInput(transactionId, salesId, recallOrderSearchCriteria);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createRecallQuoteInput(transactionId?: string | null, quoteId?: string | null): IDataServiceRequest {      \n        const query = cartsQuery();\n        return query.createDataServiceRequestForOperation('RecallQuote', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, quoteId: quoteId });\n    }    \n    \n    export function recallQuoteAsync(context: IContext, transactionId?: string | null, quoteId?: string | null):AsyncResult<Cart> {\n        const request = createRecallQuoteInput(transactionId, quoteId);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createRecalculateOrderInput(id: string, ): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('RecalculateOrder', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n    }    \n    \n    export function recalculateOrderAsync(context: IContext, id: string):AsyncResult<Cart> {\n        const request = createRecalculateOrderInput(id);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createResetAllChargesInput(id: string, ): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('ResetAllCharges', false, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n    }    \n    \n    export function resetAllChargesAsync(context: IContext, id: string):AsyncResult<Cart> {\n        const request = createResetAllChargesInput(id);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createGetPromotionsInput(id: string, ): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('GetPromotions', true, \n             'CartPromotionsClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'CartPromotions'}, { });\n    }    \n    \n    export function getPromotionsAsync(context: IContext, id: string):AsyncResult<CartPromotions> {\n        const request = createGetPromotionsInput(id);\n        return executeAction<CartPromotions>(request, context);\n    }          \n          \n    export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, \n             'CartPromotionLineClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CartPromotionLine'}, {cartLineIds: cartLineIds });\n    }    \n    \n    export function getAvailablePromotionsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult<CartPromotionLine[]> {\n        const request = createGetAvailablePromotionsInput(context.queryResultSettings, id, cartLineIds);\n        return executeAction<CartPromotionLine[]>(request, context);\n    }          \n          \n    export function createRecallSalesInvoiceInput(transactionId?: string | null, invoiceId?: string | null): IDataServiceRequest {      \n        const query = cartsQuery();\n        return query.createDataServiceRequestForOperation('RecallSalesInvoice', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoiceId: invoiceId });\n    }    \n    \n    export function recallSalesInvoiceAsync(context: IContext, transactionId?: string | null, invoiceId?: string | null):AsyncResult<Cart> {\n        const request = createRecallSalesInvoiceInput(transactionId, invoiceId);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createAddOrderInvoiceInput(id: string, invoiceId?: string | null, lineDescription?: string | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddOrderInvoice', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceId: invoiceId, lineDescription: lineDescription });\n    }    \n    \n    export function addOrderInvoiceAsync(context: IContext, id: string, invoiceId?: string | null, lineDescription?: string | null):AsyncResult<Cart> {\n        const request = createAddOrderInvoiceInput(id, invoiceId, lineDescription);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createAddInvoicesInput(id: string, invoiceIds?: string[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddInvoices', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceIds: invoiceIds });\n    }    \n    \n    export function addInvoicesAsync(context: IContext, id: string, invoiceIds?: string[] | null):AsyncResult<Cart> {\n        const request = createAddInvoicesInput(id, invoiceIds);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createUpdateCommissionSalesGroupInput(transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean): IDataServiceRequest {      \n        const query = cartsQuery();\n        return query.createDataServiceRequestForOperation('UpdateCommissionSalesGroup', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, cartLineId: cartLineId, commissionSalesGroup: commissionSalesGroup, isUserInitiated: isUserInitiated });\n    }    \n    \n    export function updateCommissionSalesGroupAsync(context: IContext, transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean):AsyncResult<Cart> {\n        const request = createUpdateCommissionSalesGroupInput(transactionId, cartLineId, commissionSalesGroup, isUserInitiated);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createAddCouponsInput(id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddCoupons', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes, isLegacyDiscountCode: isLegacyDiscountCode });\n    }    \n    \n    export function addCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null):AsyncResult<Cart> {\n        const request = createAddCouponsInput(id, couponCodes, isLegacyDiscountCode);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createRemoveCouponsInput(id: string, couponCodes?: string[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('RemoveCoupons', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes });\n    }    \n    \n    export function removeCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null):AsyncResult<Cart> {\n        const request = createRemoveCouponsInput(id, couponCodes);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createGetCartLineUserAlertsForAddInput(queryResultSettings: IQueryResultSettings, id: string, cartLines?: CartLine[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCartLineUserAlertsForAdd', true, \n             'CartLineUserAlertsClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLines: cartLines });\n    }    \n    \n    export function getCartLineUserAlertsForAddAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult<CartLineUserAlerts[]> {\n        const request = createGetCartLineUserAlertsForAddInput(context.queryResultSettings, id, cartLines);\n        return executeAction<CartLineUserAlerts[]>(request, context);\n    }          \n          \n    export function createGetCartLineUserAlertsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCartLineUserAlerts', true, \n             'CartLineUserAlertsClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLineIds: cartLineIds });\n    }    \n    \n    export function getCartLineUserAlertsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult<CartLineUserAlerts[]> {\n        const request = createGetCartLineUserAlertsInput(context.queryResultSettings, id, cartLineIds);\n        return executeAction<CartLineUserAlerts[]>(request, context);\n    }          \n          \n    export function createGetChargeCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = cartsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetChargeCodes', false, \n             'ChargeCodeClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ChargeCode'}, { });\n    }    \n    \n    export function getChargeCodesAsync(context: IContext, ):AsyncResult<ChargeCode[]> {\n        const request = createGetChargeCodesInput(context.queryResultSettings, );\n        return executeAction<ChargeCode[]>(request, context);\n    }          \n          \n    export function createGetReceiptTypesInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetReceiptTypes', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n    }    \n    \n    export function getReceiptTypesAsync(context: IContext, id: string):AsyncResult<number[]> {\n        const request = createGetReceiptTypesInput(context.queryResultSettings, id);\n        return executeAction<number[]>(request, context);\n    }          \n          \n    export function createSetInvoiceLinePriceInput(id: string, cartLineId: string | null, price: number, cartVersion?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('SetInvoiceLinePrice', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price, cartVersion: cartVersion });\n    }    \n    \n    export function setInvoiceLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number, cartVersion?: number | null):AsyncResult<Cart> {\n        const request = createSetInvoiceLinePriceInput(id, cartLineId, price, cartVersion);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createAddDiscountCodeInput(id: string, discountCode?: string | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('AddDiscountCode', true, \n             'CartClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCode: discountCode });\n    }    \n    \n    export function addDiscountCodeAsync(context: IContext, id: string, discountCode?: string | null):AsyncResult<Cart> {\n        const request = createAddDiscountCodeInput(id, discountCode);\n        return executeAction<Cart>(request, context);\n    }          \n          \n    export function createGetReturnOptionsInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetReturnOptions', false, \n             'TenderTypeAmountClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'TenderTypeAmount'}, { });\n    }    \n    \n    export function getReturnOptionsAsync(context: IContext, id: string):AsyncResult<TenderTypeAmount[]> {\n        const request = createGetReturnOptionsInput(context.queryResultSettings, id);\n        return executeAction<TenderTypeAmount[]>(request, context);\n    }          \n          \n    export function createGetConfigurationInput(): IDataServiceRequest {      \n        const query = cartsQuery();\n        return query.createDataServiceRequestForOperation('GetConfiguration', false, \n             'CartConfigurationClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'CartConfiguration'}, { });\n    }    \n    \n    export function getConfigurationAsync(context: IContext, ):AsyncResult<CartConfiguration> {\n        const request = createGetConfigurationInput();\n        return executeAction<CartConfiguration>(request, context);\n    }          \n          \n    export function createValidateForCheckoutInput(id: string, cartVersion?: number | null): IDataServiceRequest {      \n        const query = cartsQuery(id);\n        return query.createDataServiceRequestForOperation('ValidateForCheckout', false, \n             'CartLineValidationResultsClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CartLineValidationResults'}, {cartVersion: cartVersion });\n    }    \n    \n    export function validateForCheckoutAsync(context: IContext, id: string, cartVersion?: number | null):AsyncResult<CartLineValidationResults> {\n        const request = createValidateForCheckoutInput(id, cartVersion);\n        return executeAction<CartLineValidationResults>(request, context);\n    }          \n          \n    export function createGetTenderSuggestionsInput(queryResultSettings: IQueryResultSettings, id: string, tenderTypeId?: string | null, currencyCode?: string | null): IDataServiceRequest {      \n        const query = cartsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetTenderSuggestions', false, \n             'TenderLineClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, {tenderTypeId: tenderTypeId, currencyCode: currencyCode });\n    }    \n    \n    export function getTenderSuggestionsAsync(context: IContext, id: string, tenderTypeId?: string | null, currencyCode?: string | null):AsyncResult<TenderLine[]> {\n        const request = createGetTenderSuggestionsInput(context.queryResultSettings, id, tenderTypeId, currencyCode);\n        return executeAction<TenderLine[]>(request, context);\n    }          \n          \n    ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from './async-result';\nimport { IDataServiceRequest } from './Interfaces';\n\n/**\n * Calls the Retail action\n */\nexport function retailAction<T>(input: IDataServiceRequest, callerContext: unknown): Promise<T> {\n    return input.execute<T>(callerContext);\n}\n\nretailAction.prototype = {\n    isAction: true,\n    isObservable: true\n};\n\nexport function callActionOrExecute<TOut>(request: IDataServiceRequest, callerContext: any): AsyncResult<TOut> {\n    return callerContext.chainAction ? callerContext.chainAction(retailAction, request) : request.execute<TOut>(callerContext);\n}\n\nexport function executeAction<TOut>(request: IDataServiceRequest, context: any): AsyncResult<TOut> {\n    if (!context) {\n        throw new Error('context is undefined while executing action');\n    }\n\n    if (context.callerContext && context.callerContext.chainAction) {\n        context.bypassCache && request.overrideCacheType(context.bypassCache);\n        context.clientTimeoutInMs && request.setClientTimeoutInMs(context.clientTimeoutInMs);\n        return context.callerContext.chainAction(retailAction, request);\n    } else if (context.chainAction) {\n        return context.chainAction(retailAction, request);\n    }\n\n    return new AsyncResult<TOut>((resolve, reject) => {\n        request\n            .execute<TOut>(context)\n            .then(result => {\n                resolve(result);\n            })\n            .catch(error => {\n                reject(error);\n            });\n    });\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { DataServiceRequest } from './DataServiceRequest';\nimport { IDataServiceOptions, IDataServiceQueryInternal, IDataServiceRequest, IQueryResultSettings } from './Interfaces';\n\n/**\n * Represents a data service query object.\n */\nexport class DataServiceQuery {\n    private _query: IDataServiceQueryInternal;\n\n    /**\n     * Creates a new instance of DataServiceQuery<T>.\n     * @param {IDataServiceRequestFactory} dataServiceRequestFactory The data service request factory.\n     * @param {string} [entitySet] The entity set name.\n     * @param {string} [entityType] The entity type name.\n     * @param {any} [returntype] The return type of query.\n     * @param {any} [key] Entity key.\n     */\n    constructor(entitySet?: string, entityType?: string, returnType?: any, key?: any) {\n        this._query = {\n            entitySet,\n            entityType,\n            key,\n            returnType,\n            tokens: {},\n            // by default all action will skip reading from cache before making execute call\n            options: { bypassCache: 'get', returnEntity: entityType },\n            resultSettings: { Paging: {}, Sorting: {} }\n        };\n    }\n\n    /**\n     * Query result settings.\n     *\n     * @param {string} value The value of query result settings.\n     */\n    public resultSettings(value: IQueryResultSettings): DataServiceQuery {\n        if (!value) {\n            value = {};\n        }\n\n        this._query.resultSettings = {};\n        this._query.resultSettings.Paging = value.Paging || {};\n        this._query.resultSettings.Sorting = value.Sorting || {};\n        this._query.resultSettings.count = value.count;\n\n        return this;\n    }\n\n    /**\n     * Filter Clause.\n     * @param {string} value The filter value.\n     */\n    public filter(value: string): DataServiceQuery {\n        this._query.filterSettings = value;\n\n        return this;\n    }\n\n    /**\n     * Top clause\n     * @param {string} value The number of top rows to select.\n     */\n    public top(value: number): DataServiceQuery {\n        this._query.resultSettings.Paging.Top = value;\n\n        return this;\n    }\n\n    /**\n     * Skip clause\n     * @param {string} value The number of rows to skip\n     */\n    public skip(value: number): DataServiceQuery {\n        this._query.resultSettings.Paging.Skip = value;\n\n        return this;\n    }\n\n    /**\n     * Expand clause\n     * @param {string} propertyName The property name to expand.\n     */\n    public expand(propertyName: string): DataServiceQuery {\n        if (this._query.expands == null) {\n            this._query.expands = [];\n        }\n\n        this._query.expands.push(propertyName);\n        return this;\n    }\n\n    /**\n     * Request number of total row available.\n     */\n    public inlineCount(): DataServiceQuery {\n        this._query.inlineCount = true;\n\n        return this;\n    }\n\n    /**\n     * Order by clause.\n     * @param {string} value The field name for ordering.\n     */\n    public orderBy(value: string): DataServiceQuery {\n        if (!this._query.resultSettings.Sorting.Columns) {\n            this._query.resultSettings.Sorting.Columns = [];\n        }\n\n        this._query.resultSettings.Sorting.Columns.push({ ColumnName: value });\n\n        return this;\n    }\n\n    /**\n     * Transforms the request into a create request.\n     * @param {string} object The object.\n     * @return {IDataServiceRequest} The data service request.\n     */\n    public create(object: any): IDataServiceRequest {\n        this._query.action = 'Create';\n        this._query.data = this._createODataParameters(object);\n        this._query.options.bypassCache = 'none';\n        return this._createRequest();\n    }\n\n    /**\n     * Transforms the request into a read request.\n     * @return {IDataServiceRequest} The data service request.\n     */\n    public read(): IDataServiceRequest {\n        if (this._query.key || (this._query.entitySet === 'Customers' && this._query.key !== null && this._query.key !== undefined)) {\n            this._query.action = 'Read';\n        } else {\n            this._query.action = 'ReadAll';\n            this._query.isReturnTypeACollection = true;\n        }\n\n        this._query.options.bypassCache = 'none';\n        return this._createRequest();\n    }\n\n    /**\n     * Transforms the request into an update request.\n     * @param {string} object The object.\n     * @return {IDataServiceRequest} The data service request.\n     */\n    public update(object: any): IDataServiceRequest {\n        this._query.action = 'Update';\n        this._query.data = this._createODataParameters(object);\n\n        return this._createRequest();\n    }\n\n    /**\n     * Transforms the request into a delete request.\n     * @return {DataServiceRequest} The data service request.\n     */\n    public delete(): IDataServiceRequest {\n        this._query.action = 'Delete';\n\n        return this._createRequest();\n    }\n\n    public setGetAllRecords(): void {\n        this._query.resultSettings.Paging.Top = -1;\n    }\n\n    public isGetAllRecords(): boolean {\n        return this._query.resultSettings.Paging.Top === -1;\n    }\n\n    public createDataServiceRequestForOperation(\n        operationName: string,\n        isAction: boolean,\n        returnType: any,\n        isReturnTypeACollection: string,\n        options: IDataServiceOptions,\n        data?: unknown\n    ): IDataServiceRequest {\n        this._query.returnType = returnType;\n        this._query.isAction = isAction;\n        this._query.isReturnTypeACollection = isReturnTypeACollection === 'true';\n        this._query.action = operationName;\n        this._query.data = this._createODataParameters(data);\n        this._query.options = { ...{ bypassCache: 'get', returnEntity: 'CUSTOM-ENTITY' }, ...options };\n\n        if (this._query.isReturnTypeACollection && !this._query.resultSettings.Paging.Top) {\n            // for paginated requests, where we didn't specify page size, set to fetch all records\n            this.setGetAllRecords();\n        }\n\n        return this._createRequest();\n    }\n\n    private _createODataParameters(data: unknown) {\n        return data ? { parameters: data } : undefined;\n    }\n\n    private _createRequest(): IDataServiceRequest {\n        return new DataServiceRequest(this._query);\n    }\n}\n","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { OrgUnit, TillLayout, SearchStoreCriteria, SearchArea, OrgUnitLocation, OrgUnitLocationSearchCriteria, ChannelConfiguration, StoreHours, ChannelDeliveryOption, OrgUnitAvailability, ItemUnit, ProductDimensionCombination, OrgUnitAvailabilitySearchCriteria, AffiliationSearchCriteria, Affiliation, TerminalInfo } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function orgUnitsQuery(orgUnitNumber?: string): DataServiceQuery {\n        var key = (orgUnitNumber) ? { OrgUnitNumber: orgUnitNumber } : null;\n        return new DataServiceQuery(\"OrgUnits\", \"OrgUnit\", \"OrgUnitClass\", key);\n    }\n    \n    export function createCreateInput(entity: OrgUnit): IDataServiceRequest {\n        return orgUnitsQuery().create(entity);\n    }\n\n    export function createOrgUnitAsync(context: IContext, entity: OrgUnit): AsyncResult<OrgUnit> {\n        const request = createCreateInput(entity);\n        return executeAction<OrgUnit>(request, context);\n    }\n\n    export function createUpdateInput(entity: OrgUnit): IDataServiceRequest {\n        return orgUnitsQuery(entity.OrgUnitNumber).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: OrgUnit): AsyncResult<OrgUnit> {\n        const request = createUpdateInput(entity);\n        return executeAction<OrgUnit>(request, context);\n    }\n\n    export function createDeleteAsync(entity: OrgUnit): IDataServiceRequest {\n        return orgUnitsQuery(entity.OrgUnitNumber).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: OrgUnit): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(orgUnitNumber: string): IDataServiceRequest {\n        return orgUnitsQuery(orgUnitNumber).read();\n    }\n\n    export function readAsync(context: IContext, orgUnitNumber: string): AsyncResult<OrgUnit> {\n        const request = createReadAsync(orgUnitNumber);\n        return executeAction<OrgUnit>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return orgUnitsQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<OrgUnit[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<OrgUnit[]>(request, context);\n    }\n    \n    export function createGetTillLayoutInput(height?: number | null, width?: number | null, includeImage?: boolean | null): IDataServiceRequest {      \n        const query = orgUnitsQuery();\n        return query.createDataServiceRequestForOperation('GetTillLayout', true, \n             'TillLayoutClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'TillLayout'}, {height: height, width: width, includeImage: includeImage });\n    }    \n    \n    export function getTillLayoutAsync(context: IContext, height?: number | null, width?: number | null, includeImage?: boolean | null):AsyncResult<TillLayout> {\n        const request = createGetTillLayoutInput(height, width, includeImage);\n        return executeAction<TillLayout>(request, context);\n    }          \n          \n    export function createSearchInput(queryResultSettings: IQueryResultSettings, storeSearchCriteria?: SearchStoreCriteria | null): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('Search', true, \n             'OrgUnitClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrgUnit'}, {storeSearchCriteria: storeSearchCriteria });\n    }    \n    \n    export function searchAsync(context: IContext, storeSearchCriteria?: SearchStoreCriteria | null):AsyncResult<OrgUnit[]> {\n        const request = createSearchInput(context.queryResultSettings, storeSearchCriteria);\n        return executeAction<OrgUnit[]>(request, context);\n    }          \n          \n    export function createGetOrgUnitLocationsByAreaInput(queryResultSettings: IQueryResultSettings, searchArea?: SearchArea | null, deliveryModeTypeFilter?: number | null): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOrgUnitLocationsByArea', true, \n             'OrgUnitLocationClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitLocation'}, {searchArea: searchArea, deliveryModeTypeFilter: deliveryModeTypeFilter });\n    }    \n    \n    export function getOrgUnitLocationsByAreaAsync(context: IContext, searchArea?: SearchArea | null, deliveryModeTypeFilter?: number | null):AsyncResult<OrgUnitLocation[]> {\n        const request = createGetOrgUnitLocationsByAreaInput(context.queryResultSettings, searchArea, deliveryModeTypeFilter);\n        return executeAction<OrgUnitLocation[]>(request, context);\n    }          \n          \n    export function createSearchOrgUnitLocationsInput(queryResultSettings: IQueryResultSettings, orgUnitLocationSearchCriteria?: OrgUnitLocationSearchCriteria | null): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchOrgUnitLocations', true, \n             'OrgUnitLocationClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitLocation'}, {orgUnitLocationSearchCriteria: orgUnitLocationSearchCriteria });\n    }    \n    \n    export function searchOrgUnitLocationsAsync(context: IContext, orgUnitLocationSearchCriteria?: OrgUnitLocationSearchCriteria | null):AsyncResult<OrgUnitLocation[]> {\n        const request = createSearchOrgUnitLocationsInput(context.queryResultSettings, orgUnitLocationSearchCriteria);\n        return executeAction<OrgUnitLocation[]>(request, context);\n    }          \n          \n    export function createGetOrgUnitConfigurationInput(): IDataServiceRequest {      \n        const query = orgUnitsQuery();\n        return query.createDataServiceRequestForOperation('GetOrgUnitConfiguration', true, \n             'ChannelConfigurationClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'ChannelConfiguration'}, { });\n    }    \n    \n    export function getOrgUnitConfigurationAsync(context: IContext, ):AsyncResult<ChannelConfiguration> {\n        const request = createGetOrgUnitConfigurationInput();\n        return executeAction<ChannelConfiguration>(request, context);\n    }          \n          \n    export function createGetStoreHoursInput(storeNumber?: string | null): IDataServiceRequest {      \n        const query = orgUnitsQuery();\n        return query.createDataServiceRequestForOperation('GetStoreHours', false, \n             'StoreHoursClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'StoreHours'}, {storeNumber: storeNumber });\n    }    \n    \n    export function getStoreHoursAsync(context: IContext, storeNumber?: string | null):AsyncResult<StoreHours> {\n        const request = createGetStoreHoursInput(storeNumber);\n        return executeAction<StoreHours>(request, context);\n    }          \n          \n    export function createGetChannelDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, channelIds: number[], filterOption?: number | null): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetChannelDeliveryOptions', true, \n             'ChannelDeliveryOptionClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ChannelDeliveryOption'}, {channelIds: channelIds, filterOption: filterOption });\n    }    \n    \n    export function getChannelDeliveryOptionsAsync(context: IContext, channelIds: number[], filterOption?: number | null):AsyncResult<ChannelDeliveryOption[]> {\n        const request = createGetChannelDeliveryOptionsInput(context.queryResultSettings, channelIds, filterOption);\n        return executeAction<ChannelDeliveryOption[]>(request, context);\n    }          \n          \n    export function createGetAvailableInventoryInput(queryResultSettings: IQueryResultSettings, itemId?: string | null, variantId?: string | null, barcode?: string | null): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAvailableInventory', true, \n             'OrgUnitAvailabilityClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {itemId: itemId, variantId: variantId, barcode: barcode });\n    }    \n    \n    export function getAvailableInventoryAsync(context: IContext, itemId?: string | null, variantId?: string | null, barcode?: string | null):AsyncResult<OrgUnitAvailability[]> {\n        const request = createGetAvailableInventoryInput(context.queryResultSettings, itemId, variantId, barcode);\n        return executeAction<OrgUnitAvailability[]>(request, context);\n    }          \n          \n    export function createGetAvailableInventoryNearbyInput(queryResultSettings: IQueryResultSettings, itemIds?: ItemUnit[] | null, searchArea?: SearchArea | null): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAvailableInventoryNearby', true, \n             'OrgUnitAvailabilityClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {itemIds: itemIds, searchArea: searchArea });\n    }    \n    \n    export function getAvailableInventoryNearbyAsync(context: IContext, itemIds?: ItemUnit[] | null, searchArea?: SearchArea | null):AsyncResult<OrgUnitAvailability[]> {\n        const request = createGetAvailableInventoryNearbyInput(context.queryResultSettings, itemIds, searchArea);\n        return executeAction<OrgUnitAvailability[]>(request, context);\n    }          \n          \n    export function createGetProductAvailabilityByDimensionsInput(queryResultSettings: IQueryResultSettings, inventLocationIds: string[] | null, productId: number, productDimensionCombinations?: ProductDimensionCombination[] | null): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetProductAvailabilityByDimensions', true, \n             'OrgUnitAvailabilityClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {inventLocationIds: inventLocationIds, productId: productId, productDimensionCombinations: productDimensionCombinations });\n    }    \n    \n    export function getProductAvailabilityByDimensionsAsync(context: IContext, inventLocationIds: string[] | null, productId: number, productDimensionCombinations?: ProductDimensionCombination[] | null):AsyncResult<OrgUnitAvailability[]> {\n        const request = createGetProductAvailabilityByDimensionsInput(context.queryResultSettings, inventLocationIds, productId, productDimensionCombinations);\n        return executeAction<OrgUnitAvailability[]>(request, context);\n    }          \n          \n    export function createSearchProductAvailabilityInput(queryResultSettings: IQueryResultSettings, productId: number, orgUnitAvailabilitySearchCriteria?: OrgUnitAvailabilitySearchCriteria | null): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchProductAvailability', true, \n             'OrgUnitAvailabilityClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {productId: productId, orgUnitAvailabilitySearchCriteria: orgUnitAvailabilitySearchCriteria });\n    }    \n    \n    export function searchProductAvailabilityAsync(context: IContext, productId: number, orgUnitAvailabilitySearchCriteria?: OrgUnitAvailabilitySearchCriteria | null):AsyncResult<OrgUnitAvailability[]> {\n        const request = createSearchProductAvailabilityInput(context.queryResultSettings, productId, orgUnitAvailabilitySearchCriteria);\n        return executeAction<OrgUnitAvailability[]>(request, context);\n    }          \n          \n    export function createSearchAffiliationsInput(queryResultSettings: IQueryResultSettings, affiliationSearchCriteria?: AffiliationSearchCriteria | null): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchAffiliations', true, \n             'AffiliationClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Affiliation'}, {affiliationSearchCriteria: affiliationSearchCriteria });\n    }    \n    \n    export function searchAffiliationsAsync(context: IContext, affiliationSearchCriteria?: AffiliationSearchCriteria | null):AsyncResult<Affiliation[]> {\n        const request = createSearchAffiliationsInput(context.queryResultSettings, affiliationSearchCriteria);\n        return executeAction<Affiliation[]>(request, context);\n    }          \n          \n    export function createGetTerminalInfoInput(queryResultSettings: IQueryResultSettings, orgUnitNumber: string, deviceType: number): IDataServiceRequest {      \n        const query = orgUnitsQuery(orgUnitNumber).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetTerminalInfo', false, \n             'TerminalInfoClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'TerminalInfo'}, {deviceType: deviceType });\n    }    \n    \n    export function getTerminalInfoAsync(context: IContext, orgUnitNumber: string, deviceType: number):AsyncResult<TerminalInfo[]> {\n        const request = createGetTerminalInfoInput(context.queryResultSettings, orgUnitNumber, deviceType);\n        return executeAction<TerminalInfo[]>(request, context);\n    }          \n          \n    export function createGetProductAvailabilityInput(queryResultSettings: IQueryResultSettings, productId: number): IDataServiceRequest {      \n        const query = orgUnitsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetProductAvailability', false, \n             'OrgUnitAvailabilityClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {productId: productId });\n    }    \n    \n    export function getProductAvailabilityAsync(context: IContext, productId: number):AsyncResult<OrgUnitAvailability[]> {\n        const request = createGetProductAvailabilityInput(context.queryResultSettings, productId);\n        return executeAction<OrgUnitAvailability[]>(request, context);\n    }          \n          \n    ","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n  test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n  test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n  // feature detection can be too slow, so check engines versions\n  if (V8) return V8 < 70;\n  if (FF && FF > 3) return;\n  if (IE_OR_EDGE) return true;\n  if (WEBKIT) return WEBKIT < 603;\n\n  var result = '';\n  var code, chr, value, index;\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      test.push({ k: chr + index, v: value });\n    }\n  }\n\n  test.sort(function (a, b) { return b.v - a.v; });\n\n  for (index = 0; index < test.length; index++) {\n    chr = test[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n  return function (x, y) {\n    if (y === undefined) return -1;\n    if (x === undefined) return 1;\n    if (comparefn !== undefined) return +comparefn(x, y) || 0;\n    return toString(x) > toString(y) ? 1 : -1;\n  };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  sort: function sort(comparefn) {\n    if (comparefn !== undefined) aCallable(comparefn);\n\n    var array = toObject(this);\n\n    if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n    var items = [];\n    var arrayLength = lengthOfArrayLike(array);\n    var itemsLength, index;\n\n    for (index = 0; index < arrayLength; index++) {\n      if (index in array) push(items, array[index]);\n    }\n\n    internalSort(items, getSortCompare(comparefn));\n\n    itemsLength = lengthOfArrayLike(items);\n    index = 0;\n\n    while (index < itemsLength) array[index] = items[index++];\n    while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n    return array;\n  }\n});\n","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { ProductList, ProductListSearchCriteria, ProductListLine } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function productListsQuery(id?: string): DataServiceQuery {\n        var key = (id) ? { Id: id } : null;\n        return new DataServiceQuery(\"ProductLists\", \"ProductList\", \"ProductListClass\", key);\n    }\n    \n    export function createCreateInput(entity: ProductList): IDataServiceRequest {\n        return productListsQuery().create(entity);\n    }\n\n    export function createProductListAsync(context: IContext, entity: ProductList): AsyncResult<ProductList> {\n        const request = createCreateInput(entity);\n        return executeAction<ProductList>(request, context);\n    }\n\n    export function createUpdateInput(entity: ProductList): IDataServiceRequest {\n        return productListsQuery(entity.Id).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: ProductList): AsyncResult<ProductList> {\n        const request = createUpdateInput(entity);\n        return executeAction<ProductList>(request, context);\n    }\n\n    export function createDeleteAsync(entity: ProductList): IDataServiceRequest {\n        return productListsQuery(entity.Id).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: ProductList): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(id: string): IDataServiceRequest {\n        return productListsQuery(id).read();\n    }\n\n    export function readAsync(context: IContext, id: string): AsyncResult<ProductList> {\n        const request = createReadAsync(id);\n        return executeAction<ProductList>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return productListsQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<ProductList[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<ProductList[]>(request, context);\n    }\n    \n    export function createSearchInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductListSearchCriteria | null): IDataServiceRequest {      \n        const query = productListsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('Search', true, \n             'ProductListClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductList'}, {searchCriteria: searchCriteria });\n    }    \n    \n    export function searchAsync(context: IContext, searchCriteria?: ProductListSearchCriteria | null):AsyncResult<ProductList[]> {\n        const request = createSearchInput(context.queryResultSettings, searchCriteria);\n        return executeAction<ProductList[]>(request, context);\n    }          \n          \n    export function createGetProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, searchText?: string | null): IDataServiceRequest {      \n        const query = productListsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetProductListLines', true, \n             'ProductListLineClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductListLine'}, {searchText: searchText });\n    }    \n    \n    export function getProductListLinesAsync(context: IContext, id: string, searchText?: string | null):AsyncResult<ProductListLine[]> {\n        const request = createGetProductListLinesInput(context.queryResultSettings, id, searchText);\n        return executeAction<ProductListLine[]>(request, context);\n    }          \n          \n    export function createAddProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest {      \n        const query = productListsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('AddProductListLines', true, \n             'ProductListLineClass'\n          , 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\n    }    \n    \n    export function addProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult<ProductListLine[]> {\n        const request = createAddProductListLinesInput(context.queryResultSettings, id, productListLines);\n        return executeAction<ProductListLine[]>(request, context);\n    }          \n          \n    export function createUpdateProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest {      \n        const query = productListsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('UpdateProductListLines', true, \n             'ProductListLineClass'\n          , 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\n    }    \n    \n    export function updateProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult<ProductListLine[]> {\n        const request = createUpdateProductListLinesInput(context.queryResultSettings, id, productListLines);\n        return executeAction<ProductListLine[]>(request, context);\n    }          \n          \n    export function createRemoveProductListLinesInput(id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest {      \n        const query = productListsQuery(id);\n        return query.createDataServiceRequestForOperation('RemoveProductListLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {productListLines: productListLines });\n    }    \n    \n    export function removeProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult<NullResult> {\n        const request = createRemoveProductListLinesInput(id, productListLines);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createCopyCartToProductListInput(id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null): IDataServiceRequest {      \n        const query = productListsQuery(id);\n        return query.createDataServiceRequestForOperation('CopyCartToProductList', true, \n             'ProductListClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'ProductList'}, {cartId: cartId, isRewrite: isRewrite, isQuantityAggregate: isQuantityAggregate });\n    }    \n    \n    export function copyCartToProductListAsync(context: IContext, id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null):AsyncResult<ProductList> {\n        const request = createCopyCartToProductListInput(id, cartId, isRewrite, isQuantityAggregate);\n        return executeAction<ProductList>(request, context);\n    }          \n          \n    ","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar UA = require('../internals/environment-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { Customer, CustomerSearchCriteria, GlobalCustomer, CustomerSearchByFieldCriteria, CustomerTimelineItem, CustomerRefiner, SalesOrder, OrderShipments, PurchaseHistory, CustomerSearchField, CustomerTimelineItemTypeMap, CustomerTimelineRefiner, CustomerTitle } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function customersQuery(accountNumber?: string): DataServiceQuery {\n        var key = (accountNumber !== null && accountNumber !== undefined) ? { AccountNumber: accountNumber } : null;\n        return new DataServiceQuery(\"Customers\", \"Customer\", \"CustomerClass\", key);\n    }\n    \n    export function createCreateInput(entity: Customer): IDataServiceRequest {\n        return customersQuery().create(entity);\n    }\n\n    export function createCustomerAsync(context: IContext, entity: Customer): AsyncResult<Customer> {\n        const request = createCreateInput(entity);\n        return executeAction<Customer>(request, context);\n    }\n\n    export function createUpdateInput(entity: Customer): IDataServiceRequest {\n        return customersQuery(entity.AccountNumber).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: Customer): AsyncResult<Customer> {\n        const request = createUpdateInput(entity);\n        return executeAction<Customer>(request, context);\n    }\n\n    export function createDeleteAsync(entity: Customer): IDataServiceRequest {\n        return customersQuery(entity.AccountNumber).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: Customer): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(accountNumber: string): IDataServiceRequest {\n        return customersQuery(accountNumber).read();\n    }\n\n    export function readAsync(context: IContext, accountNumber: string): AsyncResult<Customer> {\n        const request = createReadAsync(accountNumber);\n        return executeAction<Customer>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return customersQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<Customer[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<Customer[]>(request, context);\n    }\n    \n    export function createSearchInput(queryResultSettings: IQueryResultSettings, customerSearchCriteria?: CustomerSearchCriteria | null): IDataServiceRequest {      \n        const query = customersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('Search', true, \n             'GlobalCustomerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'GlobalCustomer'}, {customerSearchCriteria: customerSearchCriteria });\n    }    \n    \n    export function searchAsync(context: IContext, customerSearchCriteria?: CustomerSearchCriteria | null):AsyncResult<GlobalCustomer[]> {\n        const request = createSearchInput(context.queryResultSettings, customerSearchCriteria);\n        return executeAction<GlobalCustomer[]>(request, context);\n    }          \n          \n    export function createSearchByFieldsInput(queryResultSettings: IQueryResultSettings, customerSearchByFieldCriteria?: CustomerSearchByFieldCriteria | null): IDataServiceRequest {      \n        const query = customersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchByFields', true, \n             'GlobalCustomerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'GlobalCustomer'}, {CustomerSearchByFieldCriteria: customerSearchByFieldCriteria });\n    }    \n    \n    export function searchByFieldsAsync(context: IContext, customerSearchByFieldCriteria?: CustomerSearchByFieldCriteria | null):AsyncResult<GlobalCustomer[]> {\n        const request = createSearchByFieldsInput(context.queryResultSettings, customerSearchByFieldCriteria);\n        return executeAction<GlobalCustomer[]>(request, context);\n    }          \n          \n    export function createGetByAccountNumbersInput(queryResultSettings: IQueryResultSettings, accountNumbers: string[] | null, searchLocationValue: number): IDataServiceRequest {      \n        const query = customersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetByAccountNumbers', true, \n             'CustomerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Customer'}, {accountNumbers: accountNumbers, searchLocationValue: searchLocationValue });\n    }    \n    \n    export function getByAccountNumbersAsync(context: IContext, accountNumbers: string[] | null, searchLocationValue: number):AsyncResult<Customer[]> {\n        const request = createGetByAccountNumbersInput(context.queryResultSettings, accountNumbers, searchLocationValue);\n        return executeAction<Customer[]>(request, context);\n    }          \n          \n    export function createCreateCustomerTimelineItemInput(customerTimelineItem?: CustomerTimelineItem | null): IDataServiceRequest {      \n        const query = customersQuery();\n        return query.createDataServiceRequestForOperation('CreateCustomerTimelineItem', true, \n             'CustomerTimelineItemClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CustomerTimelineItem'}, {customerTimelineItem: customerTimelineItem });\n    }    \n    \n    export function createCustomerTimelineItemAsync(context: IContext, customerTimelineItem?: CustomerTimelineItem | null):AsyncResult<CustomerTimelineItem> {\n        const request = createCreateCustomerTimelineItemInput(customerTimelineItem);\n        return executeAction<CustomerTimelineItem>(request, context);\n    }          \n          \n    export function createUpdateCustomerTimelineItemInput(customerTimelineItem?: CustomerTimelineItem | null): IDataServiceRequest {      \n        const query = customersQuery();\n        return query.createDataServiceRequestForOperation('UpdateCustomerTimelineItem', true, \n             'CustomerTimelineItemClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CustomerTimelineItem'}, {customerTimelineItem: customerTimelineItem });\n    }    \n    \n    export function updateCustomerTimelineItemAsync(context: IContext, customerTimelineItem?: CustomerTimelineItem | null):AsyncResult<CustomerTimelineItem> {\n        const request = createUpdateCustomerTimelineItemInput(customerTimelineItem);\n        return executeAction<CustomerTimelineItem>(request, context);\n    }          \n          \n    export function createGetRefinersInput(queryResultSettings: IQueryResultSettings, searchCriteria: CustomerSearchCriteria | null, refinerSourceTypes: number[]): IDataServiceRequest {      \n        const query = customersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetRefiners', true, \n             'CustomerRefinerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CustomerRefiner'}, {searchCriteria: searchCriteria, refinerSourceTypes: refinerSourceTypes });\n    }    \n    \n    export function getRefinersAsync(context: IContext, searchCriteria: CustomerSearchCriteria | null, refinerSourceTypes: number[]):AsyncResult<CustomerRefiner[]> {\n        const request = createGetRefinersInput(context.queryResultSettings, searchCriteria, refinerSourceTypes);\n        return executeAction<CustomerRefiner[]>(request, context);\n    }          \n          \n    export function createGetOrderHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest {      \n        const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOrderHistory', true, \n             'SalesOrderClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, { });\n    }    \n    \n    export function getOrderHistoryAsync(context: IContext, accountNumber: string):AsyncResult<SalesOrder[]> {\n        const request = createGetOrderHistoryInput(context.queryResultSettings, accountNumber);\n        return executeAction<SalesOrder[]>(request, context);\n    }          \n          \n    export function createGetOrderShipmentsHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, nextPageToken?: string | null): IDataServiceRequest {      \n        const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOrderShipmentsHistory', true, \n             'OrderShipmentsClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrderShipments'}, {nextPageToken: nextPageToken });\n    }    \n    \n    export function getOrderShipmentsHistoryAsync(context: IContext, accountNumber: string, nextPageToken?: string | null):AsyncResult<OrderShipments[]> {\n        const request = createGetOrderShipmentsHistoryInput(context.queryResultSettings, accountNumber, nextPageToken);\n        return executeAction<OrderShipments[]>(request, context);\n    }          \n          \n    export function createPostNonTransactionalActivityLoyaltyPointsInput(loyaltyCardId: string | null, channelId: number, affiliationId: number, activityTypeId?: string | null): IDataServiceRequest {      \n        const query = customersQuery();\n        return query.createDataServiceRequestForOperation('PostNonTransactionalActivityLoyaltyPoints', true, '', '', {bypassCache: 'get', returnEntity: ''}, {loyaltyCardId: loyaltyCardId, channelId: channelId, affiliationId: affiliationId, activityTypeId: activityTypeId });\n    }    \n    \n    export function postNonTransactionalActivityLoyaltyPointsAsync(context: IContext, loyaltyCardId: string | null, channelId: number, affiliationId: number, activityTypeId?: string | null):AsyncResult<NullResult> {\n        const request = createPostNonTransactionalActivityLoyaltyPointsInput(loyaltyCardId, channelId, affiliationId, activityTypeId);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createGetPurchaseHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest {      \n        const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetPurchaseHistory', false, \n             'PurchaseHistoryClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'PurchaseHistory'}, { });\n    }    \n    \n    export function getPurchaseHistoryAsync(context: IContext, accountNumber: string):AsyncResult<PurchaseHistory[]> {\n        const request = createGetPurchaseHistoryInput(context.queryResultSettings, accountNumber);\n        return executeAction<PurchaseHistory[]>(request, context);\n    }          \n          \n    export function createGetCustomerSearchFieldsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = customersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCustomerSearchFields', false, \n             'CustomerSearchFieldClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CustomerSearchField'}, { });\n    }    \n    \n    export function getCustomerSearchFieldsAsync(context: IContext, ):AsyncResult<CustomerSearchField[]> {\n        const request = createGetCustomerSearchFieldsInput(context.queryResultSettings, );\n        return executeAction<CustomerSearchField[]>(request, context);\n    }          \n          \n    export function createGetCustomerTimelineItemTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = customersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCustomerTimelineItemTypes', false, \n             'CustomerTimelineItemTypeMapClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineItemTypeMap'}, { });\n    }    \n    \n    export function getCustomerTimelineItemTypesAsync(context: IContext, ):AsyncResult<CustomerTimelineItemTypeMap[]> {\n        const request = createGetCustomerTimelineItemTypesInput(context.queryResultSettings, );\n        return executeAction<CustomerTimelineItemTypeMap[]>(request, context);\n    }          \n          \n    export function createGetCustomerTimelineItemsInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest {      \n        const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCustomerTimelineItems', false, \n             'CustomerTimelineItemClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineItem'}, { });\n    }    \n    \n    export function getCustomerTimelineItemsAsync(context: IContext, accountNumber: string):AsyncResult<CustomerTimelineItem[]> {\n        const request = createGetCustomerTimelineItemsInput(context.queryResultSettings, accountNumber);\n        return executeAction<CustomerTimelineItem[]>(request, context);\n    }          \n          \n    export function createGetCustomerTimelineRefinersInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest {      \n        const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCustomerTimelineRefiners', false, \n             'CustomerTimelineRefinerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineRefiner'}, { });\n    }    \n    \n    export function getCustomerTimelineRefinersAsync(context: IContext, accountNumber: string):AsyncResult<CustomerTimelineRefiner[]> {\n        const request = createGetCustomerTimelineRefinersInput(context.queryResultSettings, accountNumber);\n        return executeAction<CustomerTimelineRefiner[]>(request, context);\n    }          \n          \n    export function createGetTitlesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = customersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetTitles', false, \n             'CustomerTitleClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CustomerTitle'}, { });\n    }    \n    \n    export function getTitlesAsync(context: IContext, ):AsyncResult<CustomerTitle[]> {\n        const request = createGetTitlesInput(context.queryResultSettings, );\n        return executeAction<CustomerTitle[]>(request, context);\n    }          \n          \n    ","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { BusinessPartnerUser, AccountStatementRequest, BusinessPartnerOperationRequest } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function businessPartnerUsersQuery(b2BUserId?: string): DataServiceQuery {\n        var key = (b2BUserId) ? { B2BUserId: b2BUserId } : null;\n        return new DataServiceQuery(\"BusinessPartnerUsers\", \"BusinessPartnerUser\", \"BusinessPartnerUserClass\", key);\n    }\n    \n    export function createCreateInput(entity: BusinessPartnerUser): IDataServiceRequest {\n        return businessPartnerUsersQuery().create(entity);\n    }\n\n    export function createBusinessPartnerUserAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult<BusinessPartnerUser> {\n        const request = createCreateInput(entity);\n        return executeAction<BusinessPartnerUser>(request, context);\n    }\n\n    export function createUpdateInput(entity: BusinessPartnerUser): IDataServiceRequest {\n        return businessPartnerUsersQuery(entity.B2BUserId).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult<BusinessPartnerUser> {\n        const request = createUpdateInput(entity);\n        return executeAction<BusinessPartnerUser>(request, context);\n    }\n\n    export function createDeleteAsync(entity: BusinessPartnerUser): IDataServiceRequest {\n        return businessPartnerUsersQuery(entity.B2BUserId).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(b2BUserId: string): IDataServiceRequest {\n        return businessPartnerUsersQuery(b2BUserId).read();\n    }\n\n    export function readAsync(context: IContext, b2BUserId: string): AsyncResult<BusinessPartnerUser> {\n        const request = createReadAsync(b2BUserId);\n        return executeAction<BusinessPartnerUser>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return businessPartnerUsersQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<BusinessPartnerUser[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<BusinessPartnerUser[]>(request, context);\n    }\n    \n    export function createRequestAccountStatementInput(b2BUserId: string, accountStatementParameters?: AccountStatementRequest | null): IDataServiceRequest {      \n        const query = businessPartnerUsersQuery(b2BUserId);\n        return query.createDataServiceRequestForOperation('RequestAccountStatement', true, '', '', {bypassCache: 'get', returnEntity: ''}, {accountStatementParameters: accountStatementParameters });\n    }    \n    \n    export function requestAccountStatementAsync(context: IContext, b2BUserId: string, accountStatementParameters?: AccountStatementRequest | null):AsyncResult<NullResult> {\n        const request = createRequestAccountStatementInput(b2BUserId, accountStatementParameters);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createRequestInvoiceCopyInput(b2BUserId: string, invoiceId: string | null, deliveryType: number): IDataServiceRequest {      \n        const query = businessPartnerUsersQuery(b2BUserId);\n        return query.createDataServiceRequestForOperation('RequestInvoiceCopy', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invoiceId: invoiceId, deliveryType: deliveryType });\n    }    \n    \n    export function requestInvoiceCopyAsync(context: IContext, b2BUserId: string, invoiceId: string | null, deliveryType: number):AsyncResult<NullResult> {\n        const request = createRequestInvoiceCopyInput(b2BUserId, invoiceId, deliveryType);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createGetOperationRequestsInput(queryResultSettings: IQueryResultSettings, b2BUserId: string, startDateTime: Date, endDateTime: Date): IDataServiceRequest {      \n        const query = businessPartnerUsersQuery(b2BUserId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOperationRequests', true, \n             'BusinessPartnerOperationRequestClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'BusinessPartnerOperationRequest'}, {startDateTime: startDateTime, endDateTime: endDateTime });\n    }    \n    \n    export function getOperationRequestsAsync(context: IContext, b2BUserId: string, startDateTime: Date, endDateTime: Date):AsyncResult<BusinessPartnerOperationRequest[]> {\n        const request = createGetOperationRequestsInput(context.queryResultSettings, b2BUserId, startDateTime, endDateTime);\n        return executeAction<BusinessPartnerOperationRequest[]>(request, context);\n    }          \n          \n    export function createGetCurrentInput(): IDataServiceRequest {      \n        const query = businessPartnerUsersQuery();\n        return query.createDataServiceRequestForOperation('GetCurrent', false, \n             'BusinessPartnerUserClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'BusinessPartnerUser'}, { });\n    }    \n    \n    export function getCurrentAsync(context: IContext, ):AsyncResult<BusinessPartnerUser> {\n        const request = createGetCurrentInput();\n        return executeAction<BusinessPartnerUser>(request, context);\n    }          \n          \n    ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n    ActionPostHook,\n    ActionPostReaderHook,\n    ActionPreHook,\n    ActionPreReaderHook,\n    IAnyAction,\n    msdyn365Commerce\n} from '@msdyn365-commerce/core-internal';\nimport { LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst DEPRECATED_HOOK_TYPES = ['pre', 'post', 'preRead', 'postRead'];\n\nexport namespace ActionRegistrar {\n    type ActionHook<TOut = unknown> = ActionPreHook | ActionPostHook<TOut>;\n\n    export type ActionRegistration = {\n        action?: IAnyAction<unknown>;\n        pre?: Set<ActionPreHook>;\n        post?: Set<ActionPostHook<unknown>>;\n        preRead?: Set<ActionPreHook>;\n        postRead?: Set<ActionPostHook<unknown>>;\n        preReader?: Set<ActionPreReaderHook>;\n        postReader?: Set<ActionPostReaderHook<unknown>>;\n    };\n\n    interface IActionDictionary {\n        [actionKey: string]: ActionRegistration;\n    }\n\n    const dataActionRegister: IActionDictionary = {};\n\n    export const getRegistration = (id?: string): ActionRegistration | undefined => {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        if ((<any>msdyn365Commerce).getPartnerOverrideAction && id) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            const partnerDataAction = (<any>msdyn365Commerce).getPartnerOverrideAction(id);\n            if (partnerDataAction && partnerDataAction.default) {\n                dataActionRegister[id].action = partnerDataAction.default;\n            } else if (partnerDataAction && partnerDataAction.prototype && partnerDataAction.prototype.Action) {\n                dataActionRegister[id].action = partnerDataAction;\n            }\n        }\n\n        if (id) {\n            return dataActionRegister[id];\n        }\n\n        return undefined;\n    };\n\n    export const unwrapAction = (action: IAnyAction<unknown>): IAnyAction<unknown> => {\n        if (action && action.prototype && !action.prototype.isAction) {\n            // registered action is an action wrapper. Unwrap it.\n            return <IAnyAction<unknown>>action.prototype.Action;\n        }\n        return action;\n    };\n    /**\n     * Gets the action registered with id\n     * @param id - ID to look up action\n     */\n    export const getAction = <TOut>(id?: string): IAnyAction<TOut> | undefined => {\n        if (!id) {\n            return;\n        }\n        const registeredAction = getRegistration(id);\n        if (registeredAction) {\n            return <IAnyAction<TOut>>registeredAction.action;\n        }\n        return;\n    };\n\n    /**\n     * registers action. Does nothing if action is already registered\n     * @param id - ID to register action with\n     * @param action - action to register\n     */\n    export const registerAction = <T>(id: string, dataAction: IAnyAction<T>): IAnyAction<T> | undefined => {\n        if (!id || !dataAction) {\n            // unable to register no id or action\n            return;\n        }\n\n        const actionRegister = dataActionRegister;\n\n        if (actionRegister[id]) {\n            const registration = actionRegister[id];\n            registration.action = dataAction;\n            return <IAnyAction<T>>actionRegister[id].action;\n        } else {\n            const registration = { action: dataAction };\n            actionRegister[id] = registration;\n            return dataAction;\n        }\n    };\n\n    const registerHook = <HookType = ActionHook | ActionHook[]>(\n        hookType: 'pre' | 'post' | 'preRead' | 'postRead' | 'preReader' | 'postReader'\n    ) => (id: string, hook: HookType) => {\n        // deprecate read only hook\n        if (!msdyn365Commerce.isBrowser && DEPRECATED_HOOK_TYPES.indexOf(hookType) > -1) {\n            StaticTelemetry.log(\n                LogLevel.Warning,\n                `Data action hooks are deprecated and will be removed in later versions. Please use data action overrides to extend data actions. The related action of this ${hookType} hook is - ${id}`\n            );\n        }\n\n        const registration = getRegistration(id);\n        // coerce hook into an iterable\n        const hooks = Array.isArray(hook) ? hook : [hook];\n        if (!registration) {\n            // If the registration does not exist init one with just the hooks\n            const newRegistration: { [id: string]: unknown } = {};\n            newRegistration[hookType] = new Set<ActionHook>(<ActionHook[]>hooks);\n            dataActionRegister[id] = newRegistration;\n        } else {\n            // If the registration does exist merge new hooks with existing hooks\n            const hookRegistration = registration[hookType] || new Set<ActionHook>();\n            hooks.forEach(h => {\n                hookRegistration.add(<ActionHook>h);\n            });\n            // @ts-ignore\n            registration[hookType] = hookRegistration;\n        }\n        return hook;\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    export const registerPostHook = registerHook<ActionPostHook<any> | ActionPostHook<any>[]>('post');\n    export const registerPreHook = registerHook<ActionPreHook | ActionPreHook[]>('pre');\n    export const registerPreReadOnlyHook = registerHook<ActionPreHook | ActionPreHook[]>('preRead');\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    export const registerPostReadOnlyHook = registerHook<ActionPostHook<any> | ActionPostHook<any>[]>('postRead');\n    export const registerPreReaderHook = registerHook<ActionPreReaderHook | ActionPreReaderHook[]>('preReader');\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    export const registerPostReaderHook = registerHook<ActionPostReaderHook<any> | ActionPostReaderHook<any>[]>('postReader');\n\n    export const getPreHooks = (id: string) => {\n        const actionRegistration = getRegistration(id);\n        return actionRegistration && actionRegistration.pre;\n    };\n\n    export const getPostHooks = (id: string) => {\n        const actionRegistration = getRegistration(id);\n        return actionRegistration && actionRegistration.post;\n    };\n\n    export const getPreReadHooks = (id: string) => {\n        const actionRegistration = getRegistration(id);\n        return actionRegistration && actionRegistration.preRead;\n    };\n\n    export const getPostReadHooks = (id: string) => {\n        const actionRegistration = getRegistration(id);\n        return actionRegistration && actionRegistration.postRead;\n    };\n\n    export const getPreReaderHooks = (id: string) => {\n        const actionRegistration = getRegistration(id);\n        return actionRegistration && actionRegistration.preReader;\n    };\n    export const getPostReaderHooks = (id: string) => {\n        const actionRegistration = getRegistration(id);\n        return actionRegistration && actionRegistration.postReader;\n    };\n\n    /**\n     * Resolves the action and returns first action in action chain. Registers action if not yet registered\n     * @param id - Action id to look up or register under\n     * @param action - Action function\n     */\n    export const resolveAction = <T>(id: string, action: IAnyAction<T>): IAnyAction<T> | undefined => {\n        return getAction(id) || <IAnyAction<T>>registerAction(id, action) || action;\n    };\n\n    export const resolveRegistration = (\n        id: string,\n        action: IAnyAction<unknown>,\n        preHooks?: ActionPreHook[],\n        postHooks?: ActionPostHook<unknown>[],\n        preReadHooks?: ActionPreHook[],\n        postReadHooks?: ActionPostHook<unknown>[],\n        preReaderHooks?: ActionPreReaderHook[],\n        postReaderHooks?: ActionPostReaderHook<unknown>[]\n    ) => {\n        const resolvedAction = resolveAction(id, action);\n        if (!resolvedAction) {\n            return;\n        }\n        preHooks && registerPreHook(id, preHooks);\n        postHooks && registerPostHook(id, postHooks);\n        preReadHooks && registerPreReadOnlyHook(id, preReadHooks);\n        postReadHooks && registerPostReadOnlyHook(id, postReadHooks);\n        preReaderHooks && registerPreReaderHook(id, preReaderHooks);\n        postReaderHooks && registerPostReaderHook(id, postReaderHooks);\n        return getRegistration(id);\n    };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IActionInput, IActionWrapperPrototype, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { dataActionOptions, wrapDataAction } from './wrap-data-action';\n\n/**\n * Higher order function which exposes the current method as an action\n * @param action The action method\n * @param isBatched If the service call can handle batched requests efficiently\n * @param input Optional parameter of a single instance or an array of IActionInputs that will be passed to the action method.\n */\nexport const createObservableDataAction = <TOut>(options: dataActionOptions<TOut>): IObservableAction<TOut> => {\n    const wrappedAction = wrapDataAction(\n        options,\n        (arg1: IActionInput | IActionInput[], arg2: IActionContext): AsyncResult<TOut> => {\n            return new AsyncResult((resolve, reject) => {\n                arg2.chainAction<TOut>(options.action, arg1)\n                    .then(result => {\n                        resolve(<TOut>result);\n                    })\n                    .catch(error => {\n                        reject(error);\n                    });\n            });\n        }\n    );\n    (<IActionWrapperPrototype>wrappedAction.prototype).setProperty('isObservable', true);\n    return <IObservableAction<TOut>>wrappedAction;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAction, IActionInput, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { ActionRegistrar } from './action-registrar';\n\nexport type dataActionOptions<TOut> = {\n    action: IAction<TOut>;\n    isBatched?: boolean;\n    id?: string;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    input?: (...args: any[]) => IActionInput | IActionInput[];\n};\n\ntype IActionWrap<TOut> = IAction<TOut> | IObservableAction<TOut>;\n\n/**\n * Wraps a data action with the associated action wrap.\n * @param options\n * @param actionWrap\n */\nexport const wrapDataAction = <TOut>(options: dataActionOptions<TOut>, actionWrap: IActionWrap<TOut>): IActionWrap<TOut> => {\n    if (!options) {\n        throw new Error('wrapDataAction called with invalid options. Options should have atleast action defined');\n    }\n\n    if (!options.action) {\n        throw new Error(\n            `Received invalid actions when attempting to parse options. Input name: ${options.input ? options.input.name : 'undefined'}`\n        );\n    }\n\n    let inputFunc = options.input!;\n    let id = options.id;\n    let isBatched = options.isBatched!;\n    options.action.prototype = {\n        id,\n        isBatched,\n        isAction: true\n    };\n\n    actionWrap.prototype = {\n        id,\n        isAction: false,\n        _action: options.action,\n        set RegistrationId(registrationId: string) {\n            options.action.prototype.RegistrationId = registrationId;\n        },\n        get RegistrationId(): string {\n            return options.action.prototype.RegistrationId || '';\n        },\n        set inputFunc(func: Function) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            (<any>inputFunc) = func;\n        },\n        get inputFunc(): Function {\n            return inputFunc;\n        },\n        get isBatched(): boolean {\n            return isBatched;\n        },\n        set isBatched(_isBatched: boolean) {\n            isBatched = _isBatched;\n        },\n        get Action(): IAction<TOut> {\n            return options.action;\n        },\n        set Action(newAction: IAction<TOut>) {\n            // There are no getter/setters on the action function prototype so this behaves as expected.\n            inputFunc = newAction.prototype.input || inputFunc;\n            id = newAction.prototype.id || id;\n            isBatched = newAction.prototype.isBatched || isBatched;\n            newAction.prototype = { ...newAction.prototype, ...options.action.prototype };\n            options.action = newAction;\n        },\n        setProperty: (propertyName: string, value: unknown) => {\n            options.action.prototype[propertyName] = value;\n            actionWrap.prototype[propertyName] = options.action.prototype[propertyName];\n        }\n    };\n    if (actionWrap.prototype.id) {\n        ActionRegistrar.registerAction(actionWrap.prototype.id, actionWrap);\n    }\n\n    return actionWrap;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Known action error failure states\n */\nexport const enum ActionErrorStatus {\n    Timeout = 'Timeout',\n    HookTimeout = 'Hook Timeout',\n    ServiceUnavailable = 'Service Unavailable'\n}\n\n/**\n * Action Error Wrapper\n */\nexport class ActionError extends Error {\n    public static readonly Name: string = 'ActionError';\n\n    public error?: unknown;\n    public status?: ActionErrorStatus;\n\n    /**\n     * Checks if an object is an action error\n     */\n    public static isActionError(error: unknown): boolean {\n        return error instanceof Error && (<ActionError>error).name === ActionError.Name;\n    }\n\n    public static isTimeoutError(error: unknown): boolean {\n        return error && (<ActionError>error).status === ActionErrorStatus.Timeout;\n    }\n\n    public static isServiceUnavailable(error: unknown): boolean {\n        return error && (<ActionError>error).status === ActionErrorStatus.ServiceUnavailable;\n    }\n\n    /**\n     * Action Errors\n     * @param error Original Error\n     */\n    constructor(error: ActionErrorStatus | Error);\n    constructor(error: Error) {\n        super();\n        this.name = ActionError.Name;\n        if (error instanceof Error) {\n            this.message = error.message;\n            this.error = error;\n        } else {\n            if (error === ActionErrorStatus.Timeout) {\n                this.status = <ActionErrorStatus>error;\n                this.message = 'Action Timeout';\n            } else if (error === ActionErrorStatus.HookTimeout) {\n                this.status = <ActionErrorStatus>error;\n                this.message = 'Action hook Timeout';\n            } else if (error === ActionErrorStatus.ServiceUnavailable) {\n                this.status = <ActionErrorStatus>error;\n                this.message = 'Action failed due to service unavailable';\n            } else if (typeof error === 'string') {\n                this.message = error;\n            } else {\n                this.error = error;\n            }\n        }\n\n        // As of Typescript 2.1 if we extend the Error object the prototype must be set explicitly\n        // See: https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n        Object.setPrototypeOf(this, ActionError.prototype);\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AppCache, ICache } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput } from '@msdyn365-commerce/core-internal';\n\n/**\n * Method to indicate if the action should look in app cache for data\n * @param input ActionInput\n */\nexport const shouldReadFromAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n    return !!appCache && input && input.dataCacheType !== undefined && input.dataCacheType() !== 'none';\n};\n\n/**\n * Method to indicate if the action should write in app cache\n * @param input ActionInput\n */\nexport const shouldWriteToAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n    return isAppCacheData(input, appCache);\n};\n\n/**\n * Method to indicate if the action's cache type is application\n * @param input ActionInput\n */\nexport const isAppCacheData = (input: IActionInput, appCache: ICache | null): boolean => {\n    if (!appCache) {\n        return false;\n    }\n\n    if (input) {\n        if (input.dataCacheType !== undefined && input.dataCacheType() === 'application') {\n            return true;\n        }\n\n        // if an entity has a cache setting defined, we cache that entity - caching retail proxy actions\n        return (<AppCache>appCache).hasCacheSetting(input.getCacheObjectType());\n    }\n\n    return false;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheSource } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput, IRequestContext, msdyn365Commerce, verboseLogger } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { IInternalTelemetry, ITelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst GET_FROM_RETURNIDENTIFIER: string = '___GET__FROM__RETURNIDENTIIER___';\n\nexport const addLocaleInformation = (inputs: IActionInput | IActionInput[], locale: string): void => {\n    const isArray = Array.isArray(inputs);\n    if (isArray) {\n        const actionInputs = (inputs || []) as IActionInput[];\n        actionInputs.forEach(input => {\n            if (input instanceof DataServiceRequest && !input.getCacheKey().endsWith(`-${locale}`)) {\n                // @ts-ignore -- accessing a private class variable which is a valid JS\n                const tmp = input._cacheKeyFromInput;\n                // @ts-ignore -- accessing a private class variable which is a valid JS\n                input._cacheKeyFromInput = `${tmp}-${locale}`;\n            }\n        });\n    } else {\n        if (inputs instanceof DataServiceRequest && !inputs.getCacheKey().endsWith(`-${locale}`)) {\n            // @ts-ignore -- accessing a private class variable which is a valid JS\n            const tmp = inputs._cacheKeyFromInput;\n            // @ts-ignore -- accessing a private class variable which is a valid JS\n            inputs._cacheKeyFromInput = `${tmp}-${locale}`;\n        }\n    }\n};\n\nconst _resolveCacheEntryReference = (\n    dataServiceRequest: DataServiceRequest,\n    item: any,\n    requestCache: ICache,\n    appCache: ICache,\n    shouldReadFromAppCache?: boolean,\n    isWrappingPromise?: boolean,\n    isObservable: boolean = true\n) => {\n    const cacheValueAsArray = (item.key as string[])\n        .map(key => {\n            // @ts-ignore -- accessing a private class variable which is a valid JS\n            const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n            const value = requestCache.get({ typeName: cacheObjectType, key });\n            if (!value && shouldReadFromAppCache && appCache) {\n                appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n            }\n\n            if (!value || !value.item) {\n                return undefined;\n            }\n\n            const valueItem: any = value.item;\n\n            if (isAsyncResult(valueItem)) {\n                return valueItem.result;\n            }\n\n            return valueItem;\n        })\n        .filter(data => data !== undefined && data !== null);\n\n    if ((item.key as string[]).length > cacheValueAsArray.length) {\n        return;\n    }\n\n    // If we are returning a Promise that represents a future collection, we need to unwrap it\n    // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n    const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n\n    return cacheValueAsArray && cacheValueAsArray.length > 0\n        ? isReturnTypeACollection && !isWrappingPromise\n            ? cacheValueAsArray\n            : cacheValueAsArray[0]\n        : undefined;\n};\n\nconst logTelemetrySource = (\n    cacheValue: ICacheItem<any>,\n    dataServiceRequest: DataServiceRequest,\n    cacheKey: string,\n    context: IRequestContext,\n    telemetry?: ITelemetry | IInternalTelemetry\n) => {\n    if (!telemetry) {\n        return;\n    }\n    if (!msdyn365Commerce.isBrowser) {\n        switch (cacheValue.s!) {\n            case ICacheSource.AppCache: {\n                // @ts-ignore -- accessing a private class variable which is a valid JS\n                const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n                verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}.  source {cacheSource}', {\n                    values: [cacheObjectType, cacheKey, 'AppCache']\n                });\n                break;\n            }\n            case ICacheSource.RequestCache: {\n                // @ts-ignore -- accessing a private class variable which is a valid JS\n                const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n                verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}.  source {cacheSource}', {\n                    values: [cacheObjectType, cacheKey, 'RequestCache']\n                });\n                break;\n            }\n            default: {\n                // @ts-ignore -- accessing a private class variable which is a valid JS\n                const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n                verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}.  source {cacheSource}', {\n                    values: [cacheObjectType, cacheKey, 'Default']\n                });\n                break;\n            }\n        }\n    }\n};\n\nconst readCacheEntriesBasedOnCacheKeyFromReturnType = (\n    dataServiceRequest: DataServiceRequest,\n    requestCache: ICache,\n    appCache: ICache,\n    shouldReadFromAppCache: boolean,\n    context: IRequestContext,\n    telemetry?: ITelemetry | IInternalTelemetry,\n    isObservable: boolean = true\n): any => {\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n    if (cacheKeyFromReturnType.length === 0) {\n        return { entry: null, shouldRefresh: false };\n    }\n    let shouldRefreshAll = true;\n    const cacheEntries = cacheKeyFromReturnType\n        .map((entry: any) => {\n            const key = `${cacheKeyIdentifierFromReturnType}-${entry}`;\n\n            let cacheValue = requestCache.get({ typeName: cacheObjectType, key });\n\n            if (!cacheValue && shouldReadFromAppCache && appCache) {\n                cacheValue = appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n            }\n\n            if (!cacheValue || !cacheValue.item) {\n                return null;\n            }\n            // according to the logic, will treat the entries to shouldRefresh when all entries have shouldRefresh.\n            if (!cacheValue.shouldRefresh) {\n                shouldRefreshAll = false;\n            }\n            logTelemetrySource(cacheValue, dataServiceRequest, key, context, telemetry);\n\n            return cacheValue.item;\n        })\n        .filter(Boolean);\n\n    // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n    const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n    const cacheEntriesReturn = cacheEntries && cacheEntries.length > 0 ? (isReturnTypeACollection ? cacheEntries : cacheEntries[0]) : null;\n    return { entry: cacheEntriesReturn, shouldRefresh: shouldRefreshAll };\n};\n\nexport const readCacheEntries = (\n    dataServiceRequest: DataServiceRequest,\n    requestCache: ICache,\n    appCache: ICache,\n    shouldReadFromAppCache: boolean = false,\n    context: IRequestContext,\n    telemetry?: ITelemetry | IInternalTelemetry,\n    isObservable: boolean = true\n): any => {\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n    if (!requestCache || (!dataServiceRequest.getCacheKey() && cacheKeyFromReturnType.length === 0) || !cacheObjectType) {\n        return { entry: null, shouldRefresh: false };\n    }\n\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n    if (cacheKeyFromInput === GET_FROM_RETURNIDENTIFIER || (cacheKeyIdentifierFromReturnType && cacheKeyFromReturnType.length !== 0)) {\n        const entries = readCacheEntriesBasedOnCacheKeyFromReturnType(\n            dataServiceRequest,\n            requestCache,\n            appCache,\n            shouldReadFromAppCache,\n            context,\n            telemetry,\n            isObservable\n        );\n        if (entries && entries.entry) {\n            return entries;\n        }\n    }\n    const cacheKey = { typeName: cacheObjectType, key: cacheKeyFromInput };\n\n    let cachedValueBasedOnInput = requestCache.get(cacheKey);\n    if (cachedValueBasedOnInput) {\n        cachedValueBasedOnInput = { ...cachedValueBasedOnInput };\n    } else if (shouldReadFromAppCache && appCache) {\n        cachedValueBasedOnInput = appCache.copyTo(cacheKey, requestCache, isObservable);\n    }\n\n    if (!cachedValueBasedOnInput) {\n        return readCacheEntriesBasedOnCacheKeyFromReturnType(\n            dataServiceRequest,\n            requestCache,\n            appCache,\n            shouldReadFromAppCache,\n            context,\n            telemetry,\n            isObservable\n        );\n    }\n    logTelemetrySource(cachedValueBasedOnInput, dataServiceRequest, cacheKeyFromInput, context, telemetry);\n\n    if (cachedValueBasedOnInput.item instanceof AsyncResult) {\n        if (cachedValueBasedOnInput.item.status !== 'LOADING') {\n            cachedValueBasedOnInput.item = cachedValueBasedOnInput.item.result || cachedValueBasedOnInput.item.error;\n        } else {\n            const asyncResult = cachedValueBasedOnInput.item.then(result => {\n                if (typeof result !== 'object' || result.$ref !== true) {\n                    return result;\n                }\n\n                return _resolveCacheEntryReference(\n                    dataServiceRequest,\n                    result,\n                    requestCache,\n                    appCache,\n                    shouldReadFromAppCache,\n                    isObservable\n                );\n            });\n            return { entry: asyncResult, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n        }\n    }\n\n    if (\n        typeof cachedValueBasedOnInput.item !== 'object' ||\n        (cachedValueBasedOnInput.item &&\n            // @ts-ignore -- $ref property does not exists in type object\n            cachedValueBasedOnInput.item.$ref !== true)\n    ) {\n        return { entry: cachedValueBasedOnInput.item, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n    }\n\n    const cachedValueBasedOnInputItem: any = cachedValueBasedOnInput.item;\n\n    const resolvedRef = _resolveCacheEntryReference(\n        dataServiceRequest,\n        cachedValueBasedOnInput.item,\n        requestCache,\n        appCache,\n        shouldReadFromAppCache,\n        isAsyncResult(cachedValueBasedOnInputItem),\n        isObservable\n    );\n    return { entry: resolvedRef, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n};\n\nconst _saveEntityToCache = (\n    dataServiceRequest: DataServiceRequest,\n    data: any,\n    requestCache: ICache,\n    appCache: ICache,\n    isCacheTypeApplication: boolean,\n    isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const dataServiceRequestQuery = dataServiceRequest._query;\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n    if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType)) {\n        return;\n    }\n\n    const cacheEntries: any = {};\n    const results = data;\n\n    // using Object.prototype instead of Array.isArray because results can be Observable Array which can't be detected with Array.isArray\n    if (!dataServiceRequestQuery.isReturnTypeACollection || Object.prototype.toString.call(results) !== '[object Array]') {\n        if (cacheKeyIdentifierFromReturnType) {\n            const key = `${cacheKeyIdentifierFromReturnType}-${results[cacheKeyIdentifierFromReturnType]}`;\n            cacheEntries[key] = results;\n            if (cacheKeyFromInput) {\n                let existingCacheItem = requestCache.get({\n                    typeName: cacheObjectType,\n                    key: cacheKeyFromInput\n                });\n                if (existingCacheItem) {\n                    existingCacheItem = { ...existingCacheItem };\n                }\n\n                if (\n                    existingCacheItem &&\n                    existingCacheItem.item &&\n                    (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n                    (typeof existingCacheItem.item !== 'object' ||\n                        (existingCacheItem &&\n                            existingCacheItem.item &&\n                            // @ts-ignore -- $ref property does not exists in type object\n                            existingCacheItem?.item?.$ref !== true))\n                ) {\n                    cacheEntries[cacheKeyFromInput] = results;\n                } else {\n                    cacheEntries[cacheKeyFromInput] = {\n                        $ref: true,\n                        type: cacheObjectType,\n                        identifier: cacheKeyIdentifierFromReturnType,\n                        key: [key],\n                        // @ts-ignore -- accessing a private class variable which is a valid JS\n                        count: dataServiceRequest._totalCount\n                    };\n                }\n            }\n        } else {\n            cacheEntries[cacheKeyFromInput] = results;\n        }\n    } else if (!cacheKeyIdentifierFromReturnType) {\n        cacheEntries[cacheKeyFromInput] = results;\n    } else {\n        const cacheValue = results\n            .map((result: { [x: string]: any }) => {\n                const identifierValue = result[cacheKeyIdentifierFromReturnType];\n                if (identifierValue) {\n                    const key = `${cacheKeyIdentifierFromReturnType}-${identifierValue}`;\n                    cacheEntries[key] = result;\n                    return key;\n                }\n            })\n            .filter(Boolean);\n        let existingCacheItem = requestCache.get({\n            typeName: cacheObjectType,\n            key: cacheKeyFromInput\n        });\n        if (existingCacheItem) {\n            existingCacheItem = { ...existingCacheItem };\n        }\n        if (\n            existingCacheItem &&\n            existingCacheItem.item &&\n            (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n            (typeof existingCacheItem.item !== 'object' ||\n                (existingCacheItem &&\n                    existingCacheItem.item &&\n                    // @ts-ignore -- $ref property does not exists in type object\n                    existingCacheItem.item.$ref !== true))\n        ) {\n            cacheEntries[cacheKeyFromInput] = results;\n        } else {\n            if (existingCacheItem) {\n                // @ts-ignore - _cacheObjectType does not exist in type ICacheItem\n                const existingCacheObjectType = existingCacheItem._cacheObjectType;\n                // @ts-ignore - _cacheKeyIdentifierFromReturnType does not exist in type ICacheItem\n                const existingCacheKeyIdentifierFromReturnType = existingCacheItem._cacheKeyIdentifierFromReturnType;\n                // @ts-ignore - _query does not exist in type ICacheItem\n                const existingCacheIsReturnTypeACollection = existingCacheItem._query.isReturnTypeACollection;\n                // @ts-ignore - _totalCount does not exist in type ICacheItem\n                const existingCacheTotalCount = existingCacheItem._totalCount;\n\n                cacheEntries[cacheKeyFromInput] = {\n                    $ref: true,\n                    type: existingCacheObjectType,\n                    identifier: existingCacheKeyIdentifierFromReturnType,\n                    isCollection: existingCacheIsReturnTypeACollection,\n                    key: cacheValue,\n                    count: existingCacheTotalCount\n                };\n            }\n        }\n    }\n\n    if (cacheEntries) {\n        Object.keys(cacheEntries).map(entryKey => {\n            requestCache.put(\n                { typeName: cacheObjectType, key: entryKey },\n                { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n            );\n\n            if (appCache && isCacheTypeApplication) {\n                appCache.put(\n                    { typeName: cacheObjectType, key: entryKey },\n                    { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n                );\n            }\n        });\n    }\n\n    return cacheEntries;\n};\n\nexport const saveCacheEntries = (\n    dataServiceRequest: DataServiceRequest,\n    data: AsyncResult<any> | any,\n    requestCache: ICache,\n    appCache: ICache,\n    isCacheTypeApplication: boolean,\n    isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n    // @ts-ignore -- accessing a private class variable which is a valid JS\n    const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n    // if return Entity is collection\n    //        if entity type has identifier/primary key\n    //              1. cache array of primay key value of returned entity collection on input cache key\n    //              2. cache individual entity on primary key\n    //        else\n    //              1. cache output on input cache key\n    //\n    // else  if entity type has identifier/primary key\n    //           2. cache output entity on primary key\n    if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType) || !cacheObjectType) {\n        return;\n    }\n\n    if (data instanceof AsyncResult) {\n        // For a loading Promise, cache based on input cachekey, and then cache output again once complete\n        if (data.status === 'LOADING') {\n            // eslint-disable-next-line @typescript-eslint/no-floating-promises\n            data.then((result: any) => {\n                // @ts-ignore -- accessing a private class variable which is a valid JS\n                if (dataServiceRequest._totalCount !== undefined) {\n                    // @ts-ignore -- accessing a private class variable which is a valid JS\n                    data.metadata.count = dataServiceRequest._totalCount;\n                }\n                // @ts-ignore -- accessing a private class variable which is a valid JS\n                if (dataServiceRequest && dataServiceRequest._otherOdata) {\n                    // @ts-ignore -- accessing a private class variable which is a valid JS\n                    data.metadata.others = dataServiceRequest._otherOdata;\n                }\n\n                _saveEntityToCache(dataServiceRequest, result, requestCache, appCache, isCacheTypeApplication, isInstance);\n                return result;\n            });\n            requestCache.put(\n                { typeName: cacheObjectType, key: cacheKeyFromInput },\n                { item: data, ...(isInstance && { instance: 'instance' }) }\n            );\n\n            if (appCache && isCacheTypeApplication) {\n                appCache.put(\n                    { typeName: cacheObjectType, key: cacheKeyFromInput },\n                    { item: data, ...(isInstance && { instance: 'instance' }) }\n                );\n            }\n            // For a completed promise, save the action results to the cache\n        } else {\n            // @ts-ignore -- accessing a private class variable which is a valid JS\n            if (dataServiceRequest._totalCount !== undefined) {\n                // @ts-ignore -- accessing a private class variable which is a valid JS\n                data.metadata.count = dataServiceRequest._totalCount;\n            }\n            // @ts-ignore -- accessing a private class variable which is a valid JS\n            if (dataServiceRequest && dataServiceRequest._otherOdata) {\n                // @ts-ignore -- accessing a private class variable which is a valid JS\n                data.metadata.others = dataServiceRequest._otherOdata;\n            }\n            _saveEntityToCache(dataServiceRequest, data.result, requestCache, appCache, isCacheTypeApplication, isInstance);\n            return data.result;\n        }\n    } else {\n        return _saveEntityToCache(dataServiceRequest, data, requestCache, appCache, isCacheTypeApplication, isInstance);\n    }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { EventEmitter } from 'events';\n\n/** EventEmitter is available in node, but not on the browser,\n * this class attempts to polyfill that so the action context can remain Isomorphic\n */\n/* @internal*/\n\n/**\n * Type for event emitter listener callback\n */\nexport type ListenerCallback<T extends unknown[] = unknown[]> = (...args0: T) => void;\n\n/**\n * Generic cast type\n */\nexport type GenericCallback = (...args: any) => void;\n\n/**\n * Custom isomorphic event emitter implementation\n *\n * @export\n * @class CustomEventEmitter\n */\nclass CustomEventEmitter {\n    private listeners: Map<string, ListenerCallback[]> = new Map<string, ListenerCallback[]>();\n    private eventEmitter: EventEmitter | null = typeof window !== undefined ? null : new EventEmitter();\n\n    public on<T extends unknown[] = unknown[]>(event: string, callback: ListenerCallback<T>): void {\n        if (!!this.eventEmitter) {\n            this.eventEmitter.on(event, <GenericCallback>callback);\n        } else {\n            let listeners = this.listeners.get(event);\n            if (!!!listeners) {\n                listeners = [];\n                this.listeners.set(event, listeners);\n            }\n\n            listeners.push(<ListenerCallback>callback);\n        }\n    }\n\n    public emit<T extends unknown[] = []>(event: string, ...args: T): boolean {\n        if (!!this.eventEmitter) {\n            return this.eventEmitter.emit(event, args);\n        }\n\n        const listeners = this.listeners.get(event);\n\n        if (listeners && listeners.length) {\n            listeners.forEach(listener => {\n                listener(...args);\n            });\n            return true;\n        }\n\n        return false;\n    }\n\n    public removeAllListeners(event: string): void {\n        if (!!this.eventEmitter) {\n            this.eventEmitter.removeAllListeners(event);\n        } else {\n            this.listeners.delete(event);\n        }\n    }\n}\n\nexport default new CustomEventEmitter();\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey } from '@msdyn365-commerce/cache-internal';\nimport {\n    CacheType,\n    IActionContext,\n    IActionInput,\n    IAnyAction,\n    IDataActionOptions,\n    msdyn365Commerce,\n    verboseLogger,\n    checkVersionForFeature,\n    getPerformanceUtils\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, ErrorTypeEnum, isAsyncResult, ProxyError } from '@msdyn365-commerce/retail-proxy';\nimport { asSystemMetadata, ITelemetry, LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\nimport { get as _get, uniqWith } from 'lodash';\nimport { toJS } from 'mobx';\nimport uuidv1 from 'uuid/v1';\n\nimport { ActionError, ActionErrorStatus } from './action-error';\nimport { ActionRegistrar } from './action-registrar';\nimport { isAppCacheData, shouldReadFromAppCache, shouldWriteToAppCache } from './action-runtime-utils';\nimport { readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\n\nconst defaultTimeoutInMS: number = 4000;\nconst defaultHookTimeoutInMS: number = 1000;\nexport const CLIENT_HYDRATE_KEY = 'clientHydrateKey';\nexport const CLIENT_HYDRATE_TYPE = 'clientHydrate';\n\nconst Timer = (timeoutInMS: number, message: unknown) => new Promise(resolve => setTimeout(resolve.bind(resolve, message), timeoutInMS));\n\nconst ActionTimer = (timeoutInMS: number) =>\n    new Promise((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\nconst ObservableActionTimer = (timeoutInMS: number) =>\n    new AsyncResult((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\n/* @internal */\n/**\n * This class contains the logic to batch and de-dupe the actions that can be executed.\n * This class is also responsible for checking and saving the action response to cache.\n */\nexport default class ActionExecutor {\n    public readonly action: Function;\n    public readonly cacheType: CacheType;\n    private readonly isBatched: boolean;\n    private readonly eventId: string;\n    private readonly isObservable: boolean;\n\n    private inputs: IActionInput[];\n    /**\n     * @param action the action to execute\n     * @param inputs the action input\n     */\n    constructor(action: Function, inputs: IActionInput[], telemetry: ITelemetry, dataActionOption?: IDataActionOptions) {\n        this.action = action;\n        this.eventId = uuidv1();\n        this.inputs = [...inputs]; // Cloning it DO NOT use the reference\n        this.isBatched = action.prototype.isBatched;\n\n        this.isObservable = action.prototype.isObservable;\n\n        // Cache all the calls on browser\n        const masterInput = inputs[0];\n\n        if (masterInput && masterInput.dataCacheType) {\n            this.cacheType = masterInput.dataCacheType();\n        } else if (masterInput && masterInput.shouldCacheOutput) {\n            this.cacheType = masterInput.shouldCacheOutput() ? 'request' : 'none';\n            telemetry.trace('shouldCacheOutput property has been deprecated. Please update the IActionInput to use dataCacheType');\n        } else {\n            this.cacheType = (dataActionOption && dataActionOption.cacheType) || 'none';\n            // for data actions who do not have dataCacheType function, we add customer defined cachtype to the action.\n            // this is used for later check if the data acton should be read from app cache.\n            inputs.forEach(input => {\n                input.dataCacheType = () => this.cacheType;\n            });\n            telemetry.trace('Neither dataCacheType nor shouldCacheOutput are set. Caching strategy will fall back to \"none\"');\n        }\n    }\n\n    /**\n     *\n     * @param inputs add more inputs\n     */\n    public addInputs(inputs: IActionInput[]): void {\n        this.inputs.push(...inputs);\n    }\n\n    /** Execute the action  */\n    public async execute(\n        context: IActionContext,\n        requestCache: ICache,\n        appCache: ICache | null,\n        bypassAppCache?: boolean,\n        refreshingInputs: IActionInput[] = []\n    ): Promise<IActionInput[]> {\n        const unique: IActionInput[] =\n            refreshingInputs && refreshingInputs.length > 0\n                ? this._removeDuplicates(refreshingInputs)\n                : this._removeDuplicates(this.inputs);\n        if (!unique.length) {\n            return [];\n        }\n\n        const actionId = this._getActionIdFromInputs(unique);\n\n        const performanceUtils = getPerformanceUtils(msdyn365Commerce, context);\n        const executionId = performanceUtils?.performanceUtilsPackage.Random.Guid.generateGuid();\n\n        performanceUtils?.performanceUtilsPackage.runPreReadonlyDataActionPerformanceHook({\n            actionId,\n            executionId,\n            internalCache: performanceUtils.cache\n        });\n\n        const result = await this._executeDataAction(context, requestCache, appCache, bypassAppCache, refreshingInputs, unique, actionId);\n\n        performanceUtils?.performanceUtilsPackage.runPostReadonlyDataActionPerformanceHook({\n            actionId,\n            executionId,\n            internalCache: performanceUtils.cache\n        });\n\n        return result;\n    }\n\n    private async _executeDataAction(\n        context: IActionContext,\n        requestCache: ICache,\n        appCache: ICache | null,\n        bypassAppCache: boolean | undefined,\n        refreshingInputs: IActionInput[],\n        unique: IActionInput[],\n        actionId: string\n    ): Promise<IActionInput[]> {\n        const isRefreshingAction = refreshingInputs && refreshingInputs.length > 0;\n\n        this._runPreReadHooks(actionId, unique, context)\n            .then(() => null)\n            .catch(err => null);\n\n        // execte preReaderHook\n        this._runPreReaderHooks(actionId, unique, context)\n            .then(() => null)\n            .catch(err => null);\n        const [uncached, needsRefresh]: IActionInput[][] = this._checkForCachedData(\n            unique,\n            context,\n            requestCache,\n            appCache,\n            bypassAppCache,\n            isRefreshingAction\n        );\n\n        if (!uncached.length) {\n            // excute readOnly post hook with all cached actions ouptput\n            await this._fetchOutputsAndRunPostReadHook(actionId, unique, requestCache, context);\n            return needsRefresh;\n        } else {\n            const cachedActions = unique.filter(value => !uncached.includes(value));\n            if (cachedActions.length) {\n                // fetch the output for all cached data action, and run readOnly hooks. The uncached actions will be excuted later.\n                await this._fetchOutputsAndRunPostReadHook(actionId, cachedActions, requestCache, context);\n            }\n        }\n\n        let outputs: any[] = [];\n\n        // VNext observable promise based flow\n        // Create the AsyncResult and immediately return it\n        if (this.isObservable) {\n            if (this.isBatched) {\n                this._executeBatchedObservableActions(uncached, requestCache, appCache, context, isRefreshingAction);\n            } else {\n                this._executeObservableAction(uncached[0], requestCache, appCache, context, isRefreshingAction);\n            }\n            return needsRefresh;\n        }\n\n        if (this.isBatched) {\n            // TODO: Have a max batch count on the action\n            outputs = await this._actionWrapper(uncached, context, isRefreshingAction);\n\n            if (outputs && outputs.length !== uncached.length) {\n                // TODO Throw\n                context.telemetry.log(\n                    LogLevel.Trace,\n                    'Length of input array {uncached_length} does not meet the output array {outputs_length}',\n                    { values: [uncached.length, outputs.length] }\n                );\n            }\n        } else {\n            outputs[0] = await this._actionWrapper(uncached[0], context, isRefreshingAction);\n        }\n\n        if (!outputs || outputs.length === 0) {\n            return needsRefresh;\n        }\n\n        this._saveResponseToCache(uncached, outputs, context, requestCache, appCache);\n        return needsRefresh;\n    }\n\n    // the retail proxy data actions who do not have return type should not interact with cache.\n    private _checkShouldInteractWithCache(input: IActionInput, typeName: string | undefined): boolean {\n        return !(input instanceof DataServiceRequest) || !!typeName;\n    }\n\n    private async _fetchOutputsAndRunPostReadHook(\n        actionId: string,\n        inputs: IActionInput[],\n        requestCache: ICache,\n        context: IActionContext\n    ): Promise<void> {\n        const outputs = inputs.map(i => {\n            const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n            // if the retail data action does not have return type, we do not read the output from cache.\n            let cacheItem;\n            if (this._checkShouldInteractWithCache(i, cacheKey.typeName)) {\n                cacheItem = requestCache.get<ICacheItem<unknown>>(cacheKey);\n            }\n            return !!cacheItem ? requestCache.getValue(cacheKey) : null;\n        });\n        this._runPostReadHooks(actionId, inputs, outputs, context)\n            .then(() => null)\n            .catch(err => null);\n        this._runPostReaderHooks(actionId, inputs, outputs, context)\n            .then(() => null)\n            .catch(err => null);\n    }\n    private _removeDuplicates(inputs: IActionInput[]): IActionInput[] {\n        if (!this.isBatched) {\n            return inputs;\n        }\n\n        return uniqWith(\n            inputs,\n            (inputA: IActionInput, inputB: IActionInput) =>\n                inputA.getCacheKey() === inputB.getCacheKey() && inputA.getCacheObjectType() === inputB.getCacheObjectType()\n        );\n    }\n\n    private _getActionIdFromInputs(inputs: IActionInput | IActionInput[]): string {\n        let inputsActionId;\n        for (const input of Array.isArray(inputs) ? inputs : [inputs]) {\n            if (typeof input.getActionId === 'function') {\n                inputsActionId = input.getActionId();\n            }\n        }\n        return inputsActionId || (<IAnyAction<unknown>>this.action).prototype.id;\n    }\n\n    private _getActionFromId(actionId?: string): Function {\n        let { action } = this;\n        if (actionId) {\n            const registration = ActionRegistrar.resolveRegistration(actionId, <IAnyAction<unknown>>action);\n            if (registration) {\n                action = <IAnyAction<unknown>>registration.action;\n                return ActionRegistrar.unwrapAction(<IAnyAction<unknown>>action);\n            }\n        }\n        return action;\n    }\n\n    private async _runPreReadHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise<void> {\n        const preReadHooks = ActionRegistrar.getPreReadHooks(id);\n        if (!preReadHooks) {\n            return;\n        }\n\n        const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n        const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n        const preReadHooksArray = Array.from(preReadHooks);\n        return preReadHooksArray.reduce(async (previousTask, currentTask) => {\n            await previousTask;\n            try {\n                await Promise.race([timer, currentTask(inputs, context)]);\n            } catch (error) {\n                const actionId = id || 'unnamed';\n                verboseLogger(\n                    context && context.requestContext,\n                    context.telemetry,\n                    \"Error execution hook of action_id '{id}', returning null\",\n                    {\n                        values: [asSystemMetadata(actionId)],\n                        exception: error\n                    },\n                    LogLevel.Trace\n                );\n            }\n            return Promise.resolve();\n        }, Promise.resolve());\n    }\n\n    private async _runPostReaderHooks(\n        id: string,\n        inputs: IActionInput | IActionInput[],\n        actionResult: unknown,\n        context: IActionContext\n    ): Promise<unknown | void> {\n        const postReaderHooks = ActionRegistrar.getPostReaderHooks(id);\n        if (!postReaderHooks) {\n            return;\n        }\n\n        const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n        const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n        const postReaderHooksArray = Array.from(postReaderHooks);\n        return postReaderHooksArray.reduce(async (previousTask, currentTask) => {\n            await previousTask;\n            try {\n                await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n            } catch (error) {\n                const actionId = id || 'unnamed';\n                verboseLogger(\n                    context && context.requestContext,\n                    context.telemetry,\n                    \"Error execution hook of action_id '{id}', returning null\",\n                    {\n                        values: [asSystemMetadata(actionId)],\n                        exception: error\n                    },\n                    LogLevel.Trace\n                );\n            }\n            return Promise.resolve();\n        }, Promise.resolve());\n    }\n\n    private async _runPreReaderHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise<void> {\n        const preReaderHooks = ActionRegistrar.getPreReaderHooks(id);\n        if (!preReaderHooks) {\n            return;\n        }\n\n        const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n        const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n        const preReaderHooksArray = Array.from(preReaderHooks);\n        return preReaderHooksArray.reduce(async (previousTask, currentTask) => {\n            await previousTask;\n            try {\n                await Promise.race([timer, currentTask(inputs, context)]);\n            } catch (error) {\n                const actionId = id || 'unnamed';\n                verboseLogger(\n                    context && context.requestContext,\n                    context.telemetry,\n                    \"Error execution hook of action_id '{id}', returning null\",\n                    {\n                        values: [asSystemMetadata(actionId)],\n                        exception: error\n                    },\n                    LogLevel.Trace\n                );\n            }\n            return Promise.resolve();\n        }, Promise.resolve());\n    }\n\n    private async _runPreHooks(\n        id: string,\n        inputs: IActionInput | IActionInput[],\n        context: IActionContext\n    ): Promise<IActionInput | IActionInput[] | void> {\n        const preHooks = ActionRegistrar.getPreHooks(id);\n        if (!preHooks) {\n            return;\n        }\n        const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n        const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n        const preHooksArray = Array.from(preHooks);\n        return preHooksArray.reduce(async (previousTask, currentTask) => {\n            const prevInput = await previousTask;\n            let tmpNextInput: unknown;\n            try {\n                tmpNextInput = await Promise.race([timer, currentTask(prevInput, context)]);\n            } catch (error) {\n                throw error;\n            }\n            const finalNextInput: IActionInput | IActionInput[] =\n                tmpNextInput === ActionErrorStatus.HookTimeout || !tmpNextInput ? prevInput : <IActionInput | IActionInput[]>tmpNextInput;\n            return Promise.resolve(finalNextInput);\n        }, Promise.resolve(inputs));\n    }\n\n    private async _runPostReadHooks(\n        id: string,\n        inputs: IActionInput | IActionInput[],\n        actionResult: unknown,\n        context: IActionContext\n    ): Promise<unknown | void> {\n        const postHooks = ActionRegistrar.getPostReadHooks(id);\n\n        if (!postHooks) {\n            return;\n        }\n\n        const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n        const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n        const postReadHooksArray = Array.from(postHooks);\n        return postReadHooksArray.reduce(async (previousTask, currentTask) => {\n            await previousTask;\n            try {\n                await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n            } catch (error) {\n                const actionId = id || 'unnamed';\n                verboseLogger(\n                    context && context.requestContext,\n                    context.telemetry,\n                    \"Error execution hook of action_id '{id}', returning null\",\n                    {\n                        values: [asSystemMetadata(actionId)],\n                        exception: error\n                    },\n                    LogLevel.Trace\n                );\n            }\n            return Promise.resolve();\n        }, Promise.resolve());\n    }\n\n    private async _runPostHooks(\n        id: string,\n        inputs: IActionInput | IActionInput[],\n        actionResult: unknown,\n        context: IActionContext\n    ): Promise<unknown | void> {\n        const postHooks = ActionRegistrar.getPostHooks(id);\n        if (!postHooks) {\n            return;\n        }\n        const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n        const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n        const postHooksArray = Array.from(postHooks);\n        return postHooksArray.reduce(async (previousTask, currentTask) => {\n            const prevOutput = await previousTask;\n            let tmpNextOutput: unknown;\n            try {\n                tmpNextOutput = await Promise.race([timer, currentTask(inputs, prevOutput, context)]);\n            } catch (error) {\n                throw error;\n            }\n            const finalNextOutput = tmpNextOutput === ActionErrorStatus.HookTimeout || !tmpNextOutput ? prevOutput : tmpNextOutput;\n            return Promise.resolve(finalNextOutput);\n        }, Promise.resolve(actionResult));\n    }\n\n    /**\n     * Add performance logging before and after calling the action?\n     */\n    // eslint-disable-next-line complexity\n    private async _actionWrapper(inputs: IActionInput | IActionInput[], context: IActionContext, isRefreshing?: boolean): Promise<any> {\n        const actionId = this._getActionIdFromInputs(inputs);\n        const action = this._getActionFromId(actionId);\n\n        try {\n            // Run pre data action hooks\n            const _inputs = await this._runPreHooks(actionId, inputs, context);\n            if (_inputs) {\n                inputs = _inputs;\n            }\n        } catch (e) {\n            const convertedError = this._convertToJSError(e);\n            StaticTelemetry.log(\n                LogLevel.Error,\n                `Error executing pre-hooks for ${\n                    isRefreshing ? 'Refreshing' : ''\n                } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n                {\n                    values: [\n                        actionId || (action && action.name) || 'unnamed',\n                        convertedError.name || convertedError.message,\n                        (<any>convertedError).data ? (<any>convertedError).data.CorrelationId : ''\n                    ],\n                    exception: e\n                }\n            );\n            return new ActionError(e);\n        }\n        let actionResult;\n        try {\n            const timeOut = Number(_get(context, 'requestContext.query.actionTimeout'));\n            const features = _get(context, 'requestContext.features', {});\n            const serverSideCustomerTimeout =\n                msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.serverSideDataActionTimeoutInMs;\n            const clientSideCustomerTimeout =\n                msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.clientSideDataActionTimeoutInMs;\n            let promises;\n            if (process.env.CURRENT_ENVIRONMENT === 'node' && (features.action_timeout || serverSideCustomerTimeout)) {\n                const timeOutValue = (features.action_timeout && timeOut ? timeOut : serverSideCustomerTimeout) || defaultTimeoutInMS;\n                promises = [this.isObservable ? ObservableActionTimer(timeOutValue) : ActionTimer(timeOutValue), action(inputs, context)];\n            } else if (typeof window !== 'undefined' && msdyn365Commerce.isBrowser && clientSideCustomerTimeout) {\n                promises = [\n                    this.isObservable ? ObservableActionTimer(clientSideCustomerTimeout) : ActionTimer(clientSideCustomerTimeout),\n                    action(inputs, context)\n                ];\n            } else {\n                promises = [action(inputs, context)];\n            }\n            // run the data action\n            actionResult = await Promise.race(promises);\n        } catch (e) {\n            if (e.message && e.message.length > 0 && !e.message.includes('Action id')) {\n                e.message = `Action id: ${actionId}, Error message: ${e.message}`;\n            }\n            const convertedError = this._convertToJSError(e);\n            StaticTelemetry.log(\n                LogLevel.Error,\n                `Error executing ${\n                    isRefreshing ? 'Refreshing' : ''\n                } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n                {\n                    values: [\n                        actionId || (action && action.name) || 'unnamed',\n                        convertedError.name || convertedError.message,\n                        (<any>convertedError).data ? (<any>convertedError).data.CorrelationId : ''\n                    ],\n                    exception: e\n                }\n            );\n            let error = new ActionError(e);\n            // For AsyncResult, we need to signal that this was a rejection by throwing\n            if (this.isObservable) {\n                // Proxy Errors come wrapped as an array\n                if (Array.isArray(e)) {\n                    error =\n                        e[0]._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n                            ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n                            : ProxyError.toError(<ProxyError>e[0]);\n                } else {\n                    error =\n                        e._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n                            ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n                            : new ActionError(e);\n                }\n            }\n\n            throw error;\n        }\n\n        try {\n            // Run post data action hooks\n            const result = await this._runPostHooks(actionId, inputs, actionResult, context);\n            if (result) {\n                actionResult = result;\n            }\n            this._runPostReadHooks(actionId, inputs, actionResult, context)\n                .then(() => null)\n                .catch(err => null);\n            this._runPostReaderHooks(actionId, inputs, actionResult, context)\n                .then(() => null)\n                .catch(err => null);\n        } catch (e) {\n            const convertedError = this._convertToJSError(e);\n            StaticTelemetry.log(\n                LogLevel.Error,\n                `Error executing post-hooks for ${\n                    isRefreshing ? 'Refreshing' : ''\n                } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n                {\n                    values: [\n                        actionId || (action && action.name) || 'unnamed',\n                        convertedError.name || convertedError.message,\n                        (<any>convertedError).data ? (<any>convertedError).data.CorrelationId : ''\n                    ],\n                    exception: e\n                }\n            );\n        }\n        return actionResult;\n    }\n\n    private _shouldUseInstanceCache = () => {\n        return checkVersionForFeature('instance_cache') || msdyn365Commerce.platformSettings?.shouldUseInstanceCache;\n    };\n\n    private _saveResponseToCache(\n        uncached: IActionInput[],\n        outputs: any[],\n        context: IActionContext,\n        requestCache: ICache,\n        appCache: ICache | null\n    ): void {\n        uncached.forEach((i, idx) => {\n            const actionId = this._getActionIdFromInputs(i);\n            if (i instanceof DataServiceRequest && !!i.getCacheObjectType()) {\n                try {\n                    const appCacheData = <ICache>appCache;\n                    const disableUsingInstanceCache =\n                        context.requestContext.features && context.requestContext.features.disable_instance_cache;\n                    const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n                    saveCacheEntries(i, outputs[idx], requestCache, appCacheData, shouldWriteToAppCache(i, appCache), usingInstanceCache);\n                } catch (e) {\n                    const { action } = this;\n                    const actionName = actionId || (action && action.name) || 'unnamed';\n                    verboseLogger(\n                        context && context.requestContext,\n                        context.telemetry,\n                        \"Error execution action '{actionName}', returning null\",\n                        {\n                            values: [asSystemMetadata(actionName)],\n                            exception: e\n                        },\n                        LogLevel.Trace\n                    );\n\n                    return null;\n                }\n            } else {\n                const entityId = i.getCacheKey();\n                const entityType = i.getCacheObjectType();\n\n                if (!!entityId && !!entityType) {\n                    const entry = outputs[idx];\n                    const cacheKey = { typeName: entityType, key: entityId };\n                    if (ActionError.isActionError(entry)) {\n                        if (!ActionError.isTimeoutError(entry)) {\n                            requestCache.put(cacheKey, { item: (<ActionError>(<unknown>entry)).error, error: true });\n                        }\n                        // else do nothing\n                    } else {\n                        if (appCache && shouldWriteToAppCache(i, appCache)) {\n                            appCache.put(cacheKey, { item: entry });\n                        }\n                        const cacheEntry = { item: entry };\n                        if (i.dataCacheType && i.dataCacheType() === 'instance') {\n                            Object.assign(cacheEntry, { instance: 'instance' });\n                        }\n                        requestCache.put(cacheKey, cacheEntry);\n                    }\n                }\n            }\n        });\n    }\n\n    /**\n     * Method that executes a set of batchable observable data actions\n     * @param uncached The uncached action inputs\n     * @param requestCache The request cache\n     * @param appCache The application cache, if available\n     * @param context The action context\n     */\n    private _executeBatchedObservableActions(\n        uncached: IActionInput[],\n        requestCache: ICache,\n        appCache: ICache | null,\n        context: IActionContext,\n        isRefreshing: boolean = false\n    ): void {\n        const unresolvedSet = new Set();\n        const uncachedInputs: IActionInput[] = [];\n        // Create an OP for each input in the batch that does not yet exist in cache\n        const asyncOutputs = uncached\n            .map((input, index) => {\n                unresolvedSet.add(index);\n                const executor = (resolve: any, reject: any) => {\n                    // When the side promise completes, update each individual OP to have it's piece of the entire batched result\n                    new Promise((innerResolve, innerReject) => {\n                        const onEventIdCompletion = (value: any) => {\n                            innerResolve(<{}>value);\n                        };\n\n                        const onEventIdFinalCompletion = () => {\n                            innerResolve();\n                        };\n\n                        const onEventIdFailure = (error: any) => {\n                            innerReject(error);\n                        };\n\n                        // Standard success event\n                        EventHelper.on(`${this.eventId}-complete-${index}-${input.getCacheKey()}`, onEventIdCompletion);\n\n                        // No response closing event\n                        EventHelper.on(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`, onEventIdFinalCompletion);\n\n                        // Failure event\n                        EventHelper.on(`${this.eventId}-failure`, onEventIdFailure);\n                    })\n                        .then(result => {\n                            EventHelper.removeAllListeners(`${this.eventId}-complete-${index}-${input.getCacheKey()}`);\n                            EventHelper.removeAllListeners(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`);\n                            resolve(result);\n                        })\n                        .catch(error => {\n                            EventHelper.removeAllListeners(`${this.eventId}-failure`);\n                            reject(error);\n                        });\n                };\n\n                // Already cached OP logic (rerun)\n                // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n                let cachedPromise;\n                if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n                    cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n                }\n                if (cachedPromise && isAsyncResult(<object>cachedPromise) && !isRefreshing) {\n                    (<AsyncResult<unknown>>cachedPromise).run(executor);\n                    return;\n                }\n\n                // Not yet cached OP logic (initialize, run)\n                uncachedInputs.push(input);\n                return new AsyncResult(executor);\n            })\n            .filter(Boolean);\n\n        // Save never before cached OPs to cache\n        this._saveResponseToCache(uncachedInputs, asyncOutputs, context, requestCache, appCache);\n\n        // Run the actual action\n        this._actionWrapper(uncached, context, isRefreshing)\n            .then((actionResults: unknown[]) => {\n                // Emit events with the associated result so that each individual OP in the cache\n                // can be updated appropriately\n                actionResults.forEach((actionResult, index) => {\n                    unresolvedSet.delete(index);\n                    EventHelper.emit(`${this.eventId}-complete-${index}-${uncached[index].getCacheKey()}`, actionResult);\n                });\n            })\n            .catch(error => {\n                EventHelper.emit(`${this.eventId}-failure`, error);\n            })\n            .finally(() => {\n                // In the event some inputs do not have results, we need to resolve the promises anyhow\n                unresolvedSet.forEach(unresolvedIndex => {\n                    const index = <number>unresolvedIndex;\n                    EventHelper.emit(`${this.eventId}-final-complete-${index}-${uncached[index].getCacheKey()}`);\n                });\n            });\n    }\n\n    /**\n     * Executes a standard (non-batched) observable data action\n     * @param input The action input\n     * @param requestCache The request cache\n     * @param appCache The application cache, if available\n     * @param context The action context\n     */\n    private _executeObservableAction(\n        input: IActionInput,\n        requestCache: ICache,\n        appCache: ICache | null,\n        context: IActionContext,\n        isRefreshing: boolean = false\n    ): void {\n        const cacheKey = { key: input.getCacheKey(), typeName: input.getCacheObjectType() };\n        const executor = (resolve: any, reject: any) => {\n            this._actionWrapper(input, context, isRefreshing)\n                .then(result => {\n                    resolve(result);\n                })\n                .catch(error => {\n                    // If error is timeout error, lookup app-cache if there\n                    // is a valid entity for the given cacheKey in app-cache\n                    if (ActionError.isServiceUnavailable(error) && isAppCacheData(input, appCache)) {\n                        const cachedItem = appCache?.getValue(cacheKey);\n                        if (cachedItem) {\n                            return resolve(cachedItem);\n                        }\n                    }\n                    return reject(error);\n                });\n        };\n        // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n        let cachedPromise;\n        if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n            cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n        }\n        // If OP is already in cache, just rerun it\n        if (cachedPromise && isAsyncResult(<object>cachedPromise) && !isRefreshing) {\n            (<AsyncResult<unknown>>cachedPromise).run(executor);\n            return;\n        }\n\n        // Uncached promises need to be saved to cache\n        const asyncOutput = new AsyncResult(executor);\n        this._saveResponseToCache([input], [asyncOutput], context, requestCache, appCache);\n    }\n\n    private _checkForCachedData(\n        inputs: IActionInput[],\n        context: IActionContext,\n        requestCache: ICache,\n        appCache: ICache | null,\n        bypassCache?: boolean,\n        refreshing?: boolean\n    ): IActionInput[][] {\n        const mock = _get(context, 'requestContext.query.actionMock');\n\n        if (mock) {\n            inputs = this._interceptCacheForMocks(inputs, context, requestCache);\n        }\n\n        const clientHydrateCacheKey: ICacheKey = {\n            key: CLIENT_HYDRATE_KEY,\n            typeName: CLIENT_HYDRATE_TYPE\n        };\n        const isClientHydrate = requestCache.getValue(clientHydrateCacheKey);\n        const disableUsingInstanceCache = context.requestContext.features && context.requestContext.features.disable_instance_cache;\n        const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n        // if the cache type is set a none don't check cache for data and return inputs for execution\n        // lazyresponse == true means it has been called from load-data on browser. In this case, data is already present in request-cache due to run on server side\n        if (this.cacheType === 'none' || refreshing) {\n            // we should keep read from cache when a dataAction\n            // 1. run on server\n            // 2. none cache type\n            // 3. action running as part of initial page load (client hydration).\n            //    This is important to stay consistent with what we render on server.\n            // 4. when instance cache feature is on.\n            if (!(this.cacheType === 'none' && inputs[0].runOn === 'server' && isClientHydrate && usingInstanceCache) || refreshing) {\n                return [inputs, []];\n            }\n        }\n\n        const uncached: IActionInput[] = [];\n        const refresh: IActionInput[] = [];\n        // eslint-disable-next-line complexity\n        inputs.forEach((i, idx) => {\n            const actionId = this._getActionIdFromInputs(i);\n            const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n            // if the retail proxy action does not have return type, we do not check if its in the cache\n            if (i instanceof DataServiceRequest && !cacheKey.typeName) {\n                uncached.push(i);\n                return;\n            }\n            let cacheItem: ICacheItem<any> | undefined = requestCache.get(cacheKey);\n            if (cacheItem && isAsyncResult(<object>cacheItem.item) && (<AsyncResult<unknown>>cacheItem.item).status === 'FAILED') {\n                if (!i.runOn || i.runOn !== 'serverOnly') {\n                    uncached.push(i);\n                }\n            } else if (cacheItem && cacheItem.item && cacheItem.item.status === 'LOADING' && cacheItem.item.runOn === 'client') {\n                // Ideally, an action configured to runOn client should never interfere with actions running on server.\n                // However, it is possible that parent action with runon 'server' could be dependent on an action that is configured\n                // by partner to be runOn 'client'. In this case, the child action implicitly becomes a server action. Therefore, lets\n                // include such actions in the uncached list so that it gets picked and executed later.\n                uncached.push(i);\n            } else if (i instanceof DataServiceRequest) {\n                try {\n                    if (bypassCache && context.requestContext.features && !!!context.requestContext.features.disable_bypass_request_cache) {\n                        uncached.push(i);\n                    } else {\n                        const appCacheData = <ICache>appCache;\n                        const cacheEntries = readCacheEntries(\n                            i,\n                            requestCache,\n                            appCacheData,\n                            !!!bypassCache && shouldReadFromAppCache(i, appCache),\n                            context.requestContext,\n                            undefined,\n                            !!this.isObservable\n                        );\n                        if (!cacheEntries.entry) {\n                            uncached.push(i);\n                        }\n                        if (cacheEntries && cacheEntries.shouldRefresh) {\n                            refresh.push(i);\n                        }\n                    }\n                } catch (e) {\n                    const { action } = this;\n                    const actionName = actionId || (action && action.name) || 'unnamed';\n                    verboseLogger(\n                        context && context.requestContext,\n                        context.telemetry,\n                        \"Error execution action '{actionName}', returning null\",\n                        {\n                            values: [asSystemMetadata(actionName)],\n                            exception: e\n                        },\n                        LogLevel.Trace\n                    );\n                    uncached.push(i);\n                }\n            } else {\n                if (bypassCache && context.requestContext.features && !context.requestContext.features.disable_bypass_request_cache) {\n                    uncached.push(i);\n                } else {\n                    if (!cacheItem && !!!bypassCache && appCache && shouldReadFromAppCache(i, appCache)) {\n                        cacheItem = appCache.copyTo(cacheKey, requestCache, !!this.isObservable);\n                        if (cacheItem && cacheItem.shouldRefresh) {\n                            refresh.push(i);\n                        }\n                    }\n\n                    if (!cacheItem || !cacheItem.item) {\n                        uncached.push(i);\n                        return;\n                    }\n                }\n            }\n        });\n        return [uncached, refresh];\n    }\n\n    /**\n     * Searches cache for mocks matching the inputs\n     * @param inputs Current action inputs\n     * @param context Current action context\n     * @param requestCache Current request cache\n     */\n    private _interceptCacheForMocks(inputs: IActionInput[], context: IActionContext, requestCache: ICache): IActionInput[] {\n        const uncached: IActionInput[] = [];\n        const actionId: string = this.action.prototype.id;\n        inputs.forEach(i => {\n            let mockItem = this._getMockItem(i.getCacheObjectType(), i.getCacheKey(), requestCache);\n            if (!mockItem && actionId) {\n                mockItem = this._getMockItem(actionId, i.getCacheKey(), requestCache);\n            }\n            let existingItem;\n            if (this._checkShouldInteractWithCache(i, i.getCacheObjectType())) {\n                existingItem = requestCache.get({ typeName: i.getCacheObjectType(), key: i.getCacheKey() });\n            }\n\n            if (!!mockItem && !!mockItem.item && !existingItem) {\n                const mockItemJSObject = toJS(mockItem.item);\n                if (this.isObservable) {\n                    requestCache.put(\n                        { typeName: i.getCacheObjectType(), key: i.getCacheKey() },\n                        { item: AsyncResult.resolve(mockItemJSObject) }\n                    );\n                } else {\n                    requestCache.put({ typeName: i.getCacheObjectType(), key: i.getCacheKey() }, { item: toJS(mockItemJSObject) });\n                }\n            } else {\n                uncached.push(i);\n            }\n        });\n        return uncached;\n    }\n\n    private _getMockItem(cacheNamespace: string, cacheKey: string, requestCache: ICache): ICacheItem<unknown> | undefined {\n        return (\n            requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:${cacheKey}` }) ||\n            requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:*` })\n        );\n    }\n\n    private _convertToJSError(e: any): Error {\n        // Proxy Error usually comes wrapped in an array\n        // If it is, unbox it and conver to regular Error\n        if (Array.isArray(e)) {\n            const proxyError: ProxyError = e[0];\n            if (proxyError.ErrorCode) {\n                return ProxyError.toError(proxyError);\n            }\n        } else if (e.ErrorCode) {\n            return ProxyError.toError(e);\n        }\n        // Return regular Error if not ProxyError\n        return new Error(e.message || '');\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport {\n    CacheType,\n    IAction,\n    IActionContext,\n    IActionInput,\n    IAny,\n    ICommerceApiSettings,\n    ICreateActionContext,\n    IGeneric,\n    IRequestContext\n} from '@msdyn365-commerce/core-internal';\nimport { getCatalogsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CatalogsDataActions.g';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\nconst buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\n    return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\n};\n\n/**\n * Input for get-catalogs data action.\n */\nexport class CatalogsInput implements IActionInput {\n    public readonly channelId: number;\n\n    public readonly customerAccountNumber?: string;\n\n    private readonly apiSettings: ICommerceApiSettings;\n\n    private readonly locale?: string;\n\n    public constructor(context: IRequestContext, customerAccountNumber?: string) {\n        this.channelId = context.apiSettings.channelId ? Number(context.apiSettings.channelId) : 0;\n        this.customerAccountNumber = customerAccountNumber ? customerAccountNumber : context.user.customerAccountNumber;\n        this.apiSettings = context.apiSettings;\n        this.locale = context.locale || '';\n    }\n\n    /**\n     * Get Cache Key.\n     * @returns - Cache key string.\n     */\n    // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- customer account number can be undefined.\n    // Removing customer account number dependency as API does not need customer account number and cache is of request type.\n    // Keeping the contract same not to break backward compatibility.\n    public getCacheKey = (): string => buildCacheKey(`${this.channelId}`, this.apiSettings, this.locale);\n\n    /**\n     * Get Cache object type.\n     * @returns - Cache object type.\n     */\n    public getCacheObjectType = (): string => 'productCatalogs';\n\n    /**\n     * Get data cache type.\n     * @returns - Cache  type enum.\n     */\n    public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - The input data passed to the createInput method.\n * @param customerAccountNumber - Customer account number.\n * @returns - Catalogs input.\n */\nexport const createCatalogsInput = (inputData: ICreateActionContext<IGeneric<IAny>>, customerAccountNumber?: string): IActionInput => {\n    if (!inputData.requestContext.user.isAuthenticated) {\n        throw new Error('Unable to get product catalog. User is not authenticated.');\n    }\n    return new CatalogsInput(inputData.requestContext, customerAccountNumber);\n};\n\n/**\n * Calls the Retail API and returns the product catalog for an user.\n * @param input - Catalogs Input.\n * @param context - Current context.\n * @returns - Product catalog for the user.\n */\nexport async function getCatalogAction(input: CatalogsInput, context: IActionContext): Promise<ProductCatalog[]> {\n    const productCatalogs = await getCatalogsAsync({ callerContext: context }, input.channelId, true);\n    return productCatalogs;\n}\n\n/**\n * The GetProductCatalogs Data Action\n * Returns product catalogs.\n */\nexport const getCatalogActionDataAction = createObservableDataAction({\n    id: '@msdyn365-commerce/get-catalogs',\n    action: getCatalogAction as IAction<ProductCatalog[]>,\n    input: createCatalogsInput\n});\n\nexport default getCatalogActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IRequestContext, IRequestContextParams } from '@msdyn365-commerce/core-internal';\nimport { ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { CatalogsInput, getCatalogActionDataAction } from './actions/get-catalogs';\n\n/**\n * Returns catalog name for a given catalog id\n * @param context Action Context\n * @param context Catalog Id\n */\nexport const getCatalogName = async (context: IActionContext, catalogId: number): Promise<string> => {\n    if (!context || !context.requestContext || !context.requestContext.apiSettings) {\n        return '';\n    }\n\n    const customerAccountNumber = context.requestContext.user.customerAccountNumber;\n    const productCatalogs = await getCatalogActionDataAction(new CatalogsInput(context.requestContext, customerAccountNumber), context);\n\n    return findCatalogName(productCatalogs, catalogId);\n};\n\n/**\n * Returns true if data action cache needs to be bypassed\n * @param requestContext rendering context\n * @returns cachebypass status\n */\nexport const shouldByPassCache = (requestContext: IRequestContext) => {\n    return (requestContext.query && !!requestContext.query.cachebypass) || isPageInsightsEnabled(requestContext.params);\n};\n\nconst isPageInsightsEnabled = (params: IRequestContextParams): boolean => {\n    return params?.pageInsights === 'all' || params?.pageInsights === 'info' || params?.pageInsights === 'error';\n};\n\n/**\n * Matches the catalog if with the productCatalogs response and returns catalog name\n * @param productCatalogs Product catalogs response\n * @param catalogId Catalog id to search in Product catalogs response\n * @returns Catalog name\n */\nexport const findCatalogName = (productCatalogs: ProductCatalog[], catalogId: number): string => {\n    let catalogName = '';\n    productCatalogs &&\n        productCatalogs.forEach((catalog: ProductCatalog) => {\n            if (catalog.RecordId === catalogId && catalog.Name) {\n                catalogName = catalog.Name;\n            }\n        });\n    return catalogName;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey, ICacheSource, RequestCache } from '@msdyn365-commerce/cache-internal';\nimport {\n    IAction,\n    IActionContext,\n    IActionInput,\n    IDataActionOptions,\n    msdyn365Commerce,\n    verboseLogger\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport {\n    asSystemMetadata,\n    GenericConsoleLogger,\n    ITelemetry,\n    LogLevel,\n    StaticTelemetry,\n    Telemetry\n} from '@msdyn365-commerce/telemetry-internal';\nimport uuidv1 from 'uuid/v1';\nimport ActionExecutor from './action-executor';\nimport { ActionRegistrar } from './action-registrar';\nimport { shouldWriteToAppCache } from './action-runtime-utils';\nimport { addLocaleInformation, readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\nimport { shouldByPassCache } from './helpers';\n\n/**\n * Cache key for actions which needs to be refreshed after page render\n */\nexport const REFRESH_ACTIONS_CACHE_KEY: ICacheKey = {\n    typeName: '__REFRESH_CONFIGS_TYPE__',\n    key: '__refresh_cache_key'\n};\n\n/**\n * This interface is used in ActionContext only, for saving information needed to refresh data actions.\n *\n */\nexport interface IRefreshConfigs {\n    actionInputs: IActionInput[];\n    paramExecutor: ActionExecutor;\n}\n/**\n * This class contains the primary logic which controls the execution flow of the action runtime\n *\n */\n/* @internal*/\n/**\n *\n */\nexport class ActionContext implements IActionContext {\n    public static maxDepth: number = 200;\n\n    public readonly executionParams: ActionExecutor[] = [];\n    public readonly requestContext: any;\n\n    /**\n     * Telemetry object to log information\n     */\n    public telemetry: ITelemetry;\n\n    private readonly requestCache: ICache;\n    private readonly appCache: ICache | null = null;\n    private readonly cacheKeyMap: string[] = [];\n    private readonly refreshConfigs: IRefreshConfigs[] = [];\n\n    /**\n     * Action context creates a new instance for every tier of execution,\n     * This number specifies the depth/current tier in the execution flow\n     */\n    private readonly currentExecutionTier: number;\n\n    /**\n     * Thread ID\n     */\n    private readonly threadId: string;\n\n    /**\n     * Event ID\n     * Unique ID for each action context, automatically generated\n     */\n    private readonly eventId: string;\n\n    /**\n     * Whether the current context as executed\n     */\n    private hasRun: boolean = false;\n\n    /**\n     * When this number is > 0, the current context will wait for all the actions to\n     * be queued before kicking off execution.\n     * This number is decremented for every action that is successful in current tier.\n     */\n    private expectedActionsInCurrentTier: number;\n\n    /**\n     * variable tracking the current number of actions that are in queue, context will wait for this to match the expected count\n     */\n    private currentActionsInQueue: number = 0;\n\n    /**\n     * Object to track the next tier number.\n     */\n    private nextTierCounter: { next: number } = { next: 0 };\n\n    /**\n     * When true will span a new independent action context when an action is executed resetting depth limits\n     * Otherwise will invoke the action in the current context.\n     */\n    private spawnChildOnExecute: boolean = false;\n\n    /**\n     * @param currentExecutionTier: Current execution tier in the data fetch pipeline, max is currently 7\n     * @param expectedActionCount: This value specifies the expected number of actions to be queued before\n     *                             we kick off execution in the current tier\n     */\n    constructor(args: {\n        id: string;\n        requestContext: any;\n        requestCache: ICache;\n        appCache: ICache | null;\n        currentExecutionTier?: number;\n        expectedActionCount?: number;\n        spawnChildOnExecute?: boolean;\n        telemetry?: ITelemetry;\n    }) {\n        const {\n            id,\n            requestContext,\n            requestCache,\n            appCache,\n            currentExecutionTier,\n            expectedActionCount,\n            spawnChildOnExecute,\n            telemetry\n        } = args;\n        this.threadId = id;\n        this.eventId = uuidv1();\n\n        this.currentExecutionTier = currentExecutionTier || 0;\n        if (this.currentExecutionTier === 0) {\n            this.nextTierCounter = { next: 0 };\n        }\n\n        this.expectedActionsInCurrentTier = expectedActionCount || 0;\n        this.requestCache = requestCache;\n        this.requestContext = requestContext || {};\n        this.spawnChildOnExecute = Boolean(spawnChildOnExecute);\n\n        // If a telemetry object has been passed in use that telemetry object, otherwise create a new Telemetry object\n        if (telemetry) {\n            this.telemetry = telemetry;\n        } else {\n            // register default console logger\n            const moduleTelemetry = new Telemetry();\n            const isDebug = requestContext.params && requestContext.params.isDebug;\n\n            // register tracelogger only in development environment or debug is true.\n            (process.env.NODE_ENV === 'development' || isDebug) &&\n                moduleTelemetry.registerTraceLogger({ traceLogger: GenericConsoleLogger, options: { isDebug: isDebug } });\n\n            this.telemetry = moduleTelemetry;\n        }\n\n        /**\n         * @deprecated\n         * Trace is an alias for telemetry.log(LogLevel.Trace, message)\n         * Use the telemetry object directly.\n         */\n        this.trace = (message: string) => {\n            this.telemetry.log(LogLevel.Debug, message);\n        };\n\n        // enable app cache only if the disable_app_cache feature switch is false\n        if (requestContext.features && !!!requestContext.features.disable_app_cache) {\n            this.appCache = appCache;\n        }\n    }\n\n    public getRefreshActions(): IRefreshConfigs[] {\n        return this.refreshConfigs;\n    }\n\n    /**\n     * Chains an action method to the current context for execution\n     * @param action - action method\n     * @param inputs - action input\n     */\n    public chainAction<T>(\n        _action: IAction<T>,\n        inputs: IActionInput | IActionInput[],\n        actionOption?: IDataActionOptions\n    ): Promise<T | (T | null)[] | null> {\n        const action = ActionRegistrar.unwrapAction(_action);\n        addLocaleInformation(inputs, this.requestContext.locale);\n        if (!action || !inputs) {\n            // Decrement the expected actions on this tier since this action was incorrectly configured\n            this.expectedActionsInCurrentTier--;\n            if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n                return Promise.resolve(null);\n            }\n\n            if (!this.hasRun) {\n                return this.runAllActionsInQueue().then(() => null);\n            }\n\n            return Promise.resolve(null);\n        }\n\n        if (this.isMaxDepthExceeded()) {\n            this.debug('Max depth exceeded - not running further.');\n            return Promise.resolve(null);\n        }\n\n        if (this.hasRun) {\n            // If the parent action decides to queue another action after the current tier completes execution\n            // then set the hasRun to false, so the action can fire right away\n            this.hasRun = false;\n            this.executionParams.length = 0;\n            this.currentActionsInQueue = 0;\n        }\n\n        this.currentActionsInQueue++;\n        const isBatched = action.prototype.isBatched;\n        const inputsArray = <IActionInput[]>(isBatched ? inputs : [inputs]);\n\n        let current = this.executionParams.find(a => a.action === action);\n        if (current && isBatched) {\n            current.addInputs(inputsArray);\n        } else {\n            const inputIdentifier = `${inputsArray[0].getCacheObjectType()}||${inputsArray[0].getCacheKey()}`;\n            if (!this.cacheKeyMap.find(key => key === inputIdentifier)) {\n                current = new ActionExecutor(action, inputsArray, this.telemetry, actionOption);\n                this.executionParams.push(current);\n                this.cacheKeyMap.push(inputIdentifier);\n            }\n        }\n\n        const asyncResult = new AsyncResult<T | T[]>(async (resolve, reject) => {\n            if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n                // Hold the thread until the entire tier is populated\n                await new Promise((innerResolve: Function) => {\n                    const onEventIdCompletion = (tierNum: number) => {\n                        if (tierNum === this.currentExecutionTier) {\n                            innerResolve();\n                        }\n                    };\n                    EventHelper.on<[number]>(`${this.eventId}:completed`, onEventIdCompletion);\n                });\n                EventHelper.removeAllListeners(`${this.eventId}:completed`);\n            }\n\n            if (!this.hasRun) {\n                await this.runAllActionsInQueue();\n            }\n\n            const outputs = inputsArray.map(i => {\n                if (i instanceof DataServiceRequest) {\n                    try {\n                        const appCacheData = <ICache>this.appCache;\n                        const entry = readCacheEntries(i, this.requestCache, appCacheData, false, this.requestContext, StaticTelemetry);\n                        return entry.entry;\n                    } catch (e) {\n                        this.debug(\n                            `Error execution action type '[${i && i.getCacheObjectType()}' and cache key '[{${i &&\n                                i.getCacheKey()}}]', returning null`\n                        );\n                        return null;\n                    }\n                } else {\n                    const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n                    const cacheItem = this.requestCache.get<ICacheItem<T>>(cacheKey);\n                    const cacheValue = !!cacheItem ? this.requestCache.getValue<T>(cacheKey) : null;\n\n                    if (cacheItem && !!cacheItem.error) {\n                        throw cacheValue;\n                    } else {\n                        if (cacheItem && !msdyn365Commerce.isBrowser) {\n                            if (cacheItem.refreshStartTimeInMS) {\n                                verboseLogger(\n                                    this.requestContext,\n                                    StaticTelemetry,\n                                    'dataAction with {actiontype}, {cacheKey}.  last refresh time {lastRefresh}',\n                                    {\n                                        values: [\n                                            asSystemMetadata(i.getCacheObjectType() || 'none'),\n                                            asSystemMetadata(i.getCacheKey()),\n                                            asSystemMetadata(cacheItem.refreshStartTimeInMS)\n                                        ]\n                                    }\n                                );\n                            }\n                            switch (cacheItem.s!) {\n                                case ICacheSource.AppCache: {\n                                    verboseLogger(\n                                        this.requestContext,\n                                        StaticTelemetry,\n                                        'dataAction with {actiontype}, {cacheKey}.  source {cacheSource}',\n                                        {\n                                            values: [\n                                                asSystemMetadata(i.getCacheObjectType() || 'none'),\n                                                asSystemMetadata(i.getCacheKey()),\n                                                asSystemMetadata('AppCache')\n                                            ]\n                                        }\n                                    );\n                                    break;\n                                }\n                                case ICacheSource.RequestCache: {\n                                    verboseLogger(\n                                        this.requestContext,\n                                        StaticTelemetry,\n                                        'dataAction with {actiontype}, {cacheKey}.  source {cacheSource}',\n                                        {\n                                            values: [\n                                                asSystemMetadata(i.getCacheObjectType() || 'none'),\n                                                asSystemMetadata(i.getCacheKey()),\n                                                asSystemMetadata('RequestCache')\n                                            ]\n                                        }\n                                    );\n                                    break;\n                                }\n                                default: {\n                                    verboseLogger(\n                                        this.requestContext,\n                                        StaticTelemetry,\n                                        'dataAction with {actiontype}, {cacheKey}.  source {cacheSource}',\n                                        {\n                                            values: [\n                                                asSystemMetadata(i.getCacheObjectType() || 'none'),\n                                                asSystemMetadata(i.getCacheKey()),\n                                                asSystemMetadata('Undefined')\n                                            ]\n                                        }\n                                    );\n                                }\n                            }\n                        }\n                        return cacheValue;\n                    }\n                }\n            });\n\n            this.cacheKeyMap.splice(0, this.cacheKeyMap.length);\n\n            // Batched observable actions need to be merged into a single AsyncResult\n            if (isBatched && action.prototype.isObservable) {\n                resolve(\n                    Promise.all(outputs).then(results => {\n                        // Because AsyncResult sometimes get mangled by MobX, we need to ensure mangled ones are still unwrapped\n                        return results.map(result => {\n                            return result && result._type === 'AsyncResult' ? result.result : result;\n                        });\n                    })\n                );\n            } else {\n                // We need to pass along the metadata explicitly to the outer AsyncResult\n                if (isAsyncResult(outputs[0]) && !isBatched) {\n                    // eslint-disable-next-line @typescript-eslint/no-floating-promises\n                    outputs[0].then(() => {\n                        asyncResult.metadata = outputs[0].metadata;\n                    });\n                }\n\n                resolve(isBatched ? outputs : (outputs.length && outputs[0]) || null);\n            }\n        });\n\n        return asyncResult;\n    }\n\n    /**\n     * Helper method to update cache\n     * @param input The input\n     * @param data The data\n     */\n    public update<T>(inputs: IActionInput | IActionInput[], data: T): T {\n        if (inputs && data) {\n            // If an array of actionInputs has been passed, an equal amount of data items must be present\n            const dataArray = <unknown[]>(Array.isArray(inputs) ? data : [data]);\n            const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n            if (inputArray.length !== dataArray.length) {\n                throw new Error('Array of action inputs was passed to actionContext Update, and did not match length of input data array.');\n            }\n            addLocaleInformation(inputArray, this.requestContext.locale);\n            inputArray.map((i, idx) => {\n                if (i instanceof DataServiceRequest) {\n                    try {\n                        const appCacheData = <ICache>this.appCache;\n                        saveCacheEntries(i, dataArray[idx], this.requestCache, appCacheData, shouldWriteToAppCache(i, this.appCache));\n                    } catch (e) {\n                        this.debug(\n                            `Error in updating cache with input '[${i.getCacheObjectType()}]' - '[${i.getCacheKey()}]', returning null`\n                        );\n                        this.error(e);\n                    }\n                } else {\n                    // When updating OPs, only result can be updated, passed OPs will also be unwrapped.\n                    if (isAsyncResult(<object>dataArray[idx])) {\n                        dataArray[idx] = (<AsyncResult<unknown>>dataArray[idx]).result;\n                    }\n\n                    const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n                    this.requestCache.put(cacheKey, { item: dataArray[idx] });\n                    if (this.appCache && shouldWriteToAppCache(i, this.appCache)) {\n                        this.appCache.put(cacheKey, { item: dataArray[idx] });\n                    }\n                }\n            });\n\n            if (Array.isArray(inputs)) {\n                return <T>(<unknown>inputs.map(input => {\n                    return this.requestCache.getValue({ typeName: input.getCacheObjectType(), key: input.getCacheKey() });\n                }));\n            } else {\n                return <T>this.requestCache.getValue({ typeName: inputs.getCacheObjectType(), key: inputs.getCacheKey() });\n            }\n        }\n\n        // For scenarios where data/input was bad, we just return original data\n        return data;\n    }\n\n    /**\n     * Helper method to log trace using telemetry\n     * @param message message to log to console\n     */\n    public trace = (message: string): void => {\n        this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n            values: [this.currentExecutionTier, this.threadId, message]\n        });\n    };\n\n    /**\n     * Helper method to log error using telemetry\n     * @param message message to log to console\n     */\n    public error = (message: string): void => {\n        this.telemetry.log(LogLevel.Error, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n            values: [this.currentExecutionTier, this.threadId, message]\n        });\n    };\n\n    /**\n     * Helper method to log debug using telemetry\n     * @param message message to log to console\n     */\n    public debug = (message: string): void => {\n        this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n            values: [this.currentExecutionTier, this.threadId, message]\n        });\n    };\n\n    /**\n     * Helper method to data cache from cache\n     * if cachekey is null or empty, it returns all entries of cacheObjectType\n     * @param cacheObjectType entity type that was cached\n     * @param cacheKey cache key against which the object is cached\n     * @throws if cacheObjecttype is null or empty\n     */\n    public get<T>(cacheObjectType: string, cacheKey: string): T | T[] | null {\n        if (!cacheObjectType) {\n            throw new Error('Cannot have null or empty cacheObjectType');\n        }\n\n        if (!cacheKey) {\n            throw new Error('Cannot have null or empty cacheKey');\n        }\n\n        const preparedCacheKey = { typeName: cacheObjectType, key: cacheKey };\n        let cachedItem = this.requestCache.get<any>(preparedCacheKey);\n\n        if (process.env.CURRENT_ENVIRONMENT === 'node' && !cachedItem && this.appCache) {\n            cachedItem = this.appCache.get<any>(preparedCacheKey);\n        }\n\n        if (!cachedItem) {\n            return null;\n        }\n\n        if (typeof cachedItem.item !== 'object' || cachedItem.item.$ref !== true) {\n            return cachedItem.item;\n        }\n\n        return Array.isArray(cachedItem.item.key) ? <T[]>(<string[]>cachedItem.item.key)\n                  .map(key => this.getItemFromCache<T>({ typeName: cacheObjectType, key }))\n                  .filter(Boolean) : null;\n    }\n\n    /**\n     * Helper method to data cache from cache\n     * if cachekey is null or empty, it returns all entries of cacheObjectType\n     * @param input The input\n     * @param data The data\n     * @throws if cacheObjecttype is null or empty\n     */\n    public getAll<T>(cacheObjectType: string): T[] | null {\n        if (!cacheObjectType) {\n            throw new Error('Cannot have null or empty cacheObjectType');\n        }\n\n        let cachedEntries = this.requestCache.getAllItems<any>(cacheObjectType);\n        if (!cachedEntries) {\n            if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n                cachedEntries = this.appCache && this.appCache.getAllItems<any>(cacheObjectType);\n            }\n\n            if (!cachedEntries) {\n                return null;\n            }\n        }\n\n        return <T[]>Object.keys(cachedEntries)\n            .filter(key => typeof cachedEntries![key].item !== 'object' || cachedEntries![key].item.$ref !== true)\n            .map(key => cachedEntries![key].item);\n    }\n\n    /**\n     * Executes all the actions in the current context in parallel\n     */\n    public async runAllActionsInQueue(): Promise<void> {\n        const { threadId, requestContext, requestCache, appCache, nextTierCounter, executionParams } = this;\n        if (!executionParams.length) {\n            this.trace('No actions to execute - not running further.');\n            return;\n        }\n        // Increment the tier each pass through run all actions\n        if (this.isMaxDepthExceeded()) {\n            this.trace('Max depth exceeded - not running further.');\n            return;\n        }\n\n        // When kicking off the next tier,\n        // set the max number of chain actions the can be expected from child actions\n        // equal to the number of actions that are executing in current tier\n        const expectedNumberOfChildThreads = executionParams.length;\n\n        let nextTierStartingDepth;\n        if (this.spawnChildOnExecute) {\n            nextTierStartingDepth = nextTierCounter.next + 1;\n        } else {\n            nextTierStartingDepth = ++nextTierCounter.next;\n        }\n\n        const nextTier = new ActionContext({\n            id: threadId,\n            requestContext: requestContext,\n            requestCache: requestCache,\n            appCache: appCache,\n            currentExecutionTier: nextTierStartingDepth,\n            expectedActionCount: expectedNumberOfChildThreads,\n            telemetry: this.telemetry\n        });\n\n        const refreshconfigslocal: Set<IRefreshConfigs> = new Set();\n\n        nextTier.nextTierCounter = { next: nextTierStartingDepth };\n        // DO NOT Trace using current action context, use only secondaryContext to remain consistent with actions\n        const promises: Promise<any>[] = executionParams.map(param => {\n            // TODO: should we read from input about the cacheability?\n            return param.execute(nextTier, requestCache, appCache, shouldByPassCache(this.requestContext), []).then(refreshActions => {\n                // refresh the data actions which need to be refreshed.\n                if (refreshActions.length) {\n                    refreshconfigslocal.add({\n                        paramExecutor: param,\n                        actionInputs: refreshActions\n                    });\n\n                    this.refreshConfigs.push({\n                        paramExecutor: param,\n                        actionInputs: refreshActions\n                    });\n\n                    const cacheValue = requestCache.get<IRefreshConfigs[]>(REFRESH_ACTIONS_CACHE_KEY);\n                    const refreshConfigs = cacheValue ? cacheValue.item : [];\n                    refreshConfigs.push({\n                        paramExecutor: param,\n                        actionInputs: refreshActions\n                    });\n                    requestCache.put<IRefreshConfigs[]>(REFRESH_ACTIONS_CACHE_KEY, {\n                        item: refreshConfigs\n                    });\n                }\n\n                // If the current chain action completes execution\n                // decrement the max number of threads that we expect\n                // from the next tier\n                nextTier.expectedActionsInCurrentTier--;\n\n                if (!nextTier.hasRun) {\n                    // First check if the next tier has any actions\n                    // then check if the number of thread match expected\n                    if (nextTier.currentActionsInQueue > 0 && nextTier.currentActionsInQueue === nextTier.expectedActionsInCurrentTier) {\n                        return nextTier.runAllActionsInQueue();\n                    }\n                }\n            });\n        });\n\n        // Wait until all the actions in current tier are run to completion\n        return Promise.all(promises)\n            .then(() => {\n                if (refreshconfigslocal.size > 0 && requestContext.features && !!requestContext.features.disable_appcache_refresh_await) {\n                    refreshconfigslocal.forEach(rf => {\n                        const refreshRequestCache = new RequestCache();\n                        const refreshContext = new ActionContext({\n                            id: 'Refresh Context',\n                            requestContext: requestContext,\n                            requestCache: new RequestCache(),\n                            telemetry: this.telemetry,\n                            appCache: appCache,\n                            spawnChildOnExecute: true\n                        });\n\n                        rf.paramExecutor\n                            .execute(\n                                refreshContext,\n                                refreshRequestCache,\n                                this.appCache,\n                                shouldByPassCache(this.requestContext),\n                                rf.actionInputs\n                            )\n                            .then(() =>\n                                verboseLogger(\n                                    this.requestContext,\n                                    StaticTelemetry,\n                                    `BackgroundRefresh - Executed refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n                                )\n                            )\n                            .catch(error => {\n                                StaticTelemetry.log(\n                                    LogLevel.Warning,\n                                    `BackgroundRefresh - Error execution refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n                                );\n                            });\n                    });\n                }\n                this._endCurrentTier();\n            })\n            .catch(error => {\n                this._endCurrentTier();\n                throw error;\n            });\n    }\n\n    /**\n     * Returns true if current tier has exceeded max depth\n     */\n    private isMaxDepthExceeded = (): boolean => {\n        const maxDepth =\n            (this.requestContext &&\n                this.requestContext.app &&\n                this.requestContext.app.platform &&\n                this.requestContext.app.platform.maxDepth) ||\n            ActionContext.maxDepth;\n        return this.nextTierCounter.next > maxDepth;\n    };\n\n    /**\n     * Retrieves item from request cache and fallsback to app cache if not found\n     */\n    private getItemFromCache = <T>(cacheKey: ICacheKey): T | undefined => {\n        let cachedItem = this.requestCache.get<T>(cacheKey);\n\n        if (cachedItem) {\n            return cachedItem.item;\n        }\n\n        if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n            cachedItem = this.appCache.get<T>(cacheKey);\n        }\n\n        return cachedItem ? cachedItem.item : undefined;\n    };\n\n    /**\n     * Signals the end of current tier so actions can return the response\n     */\n    private _endCurrentTier = (): void => {\n        this.hasRun = true;\n        EventHelper.emit(`${this.eventId}:completed`, this.currentExecutionTier);\n    };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RequestCache } from '@msdyn365-commerce/cache-internal';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ActionContext } from './action-context';\n\n/**\n * Creates a mock but usable ActionContext.\n * @param context The partial context to add to the return action context.\n *\n * DEPRECATED: Please use buildMockActionContext and pass in a constructed\n * ActionContext to build a hydrated mock action context\n * Example:\n *      const actionContext = buildMockActionContext(new ActionContext({\n *           id: 'mock-context',\n *           requestCache: new RequestCache(),\n *           requestContext: {},\n *           appCache: null\n *       }));\n *\n */\nexport const buildHydratedMockActionContext = (context?: Partial<IActionContext>): IActionContext => {\n    return new ActionContext({\n        id: 'mock-context',\n        requestCache: new RequestCache(),\n        requestContext: (context && context.requestContext) || {},\n        appCache: null\n    });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n    CacheType,\n    generateImageUrlForOmniChanel,\n    IAction,\n    IActionContext,\n    IActionInput,\n    IRequestContext,\n    versionGte\n} from '@msdyn365-commerce/core-internal';\nimport { getMediaLocationsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n// @ts-ignore\nimport { MediaLocation, MediaType } from '@msdyn365-commerce/retail-proxy';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\n/**\n * The action input class for the getMediaLocationsForSelectedVariant data action.\n */\nexport class MediaLocationsInput implements IActionInput {\n    public productId: number;\n\n    public channelId: number;\n\n    public catalogId: number;\n\n    private readonly locale?: string;\n\n    constructor(context: IRequestContext, productId: number, channelId: number, catalogId?: number) {\n        this.productId = productId;\n        this.channelId = channelId;\n        this.catalogId = catalogId || 0;\n        this.locale = context.locale;\n    }\n\n    public getCacheKey = () => `${this.productId}-${this.channelId}-${this.catalogId}-${this.locale}}`;\n\n    public getCacheObjectType = () => 'ProductMediaLocations';\n\n    public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * The action method for the getMediaLocationsForSelectedVariant data action.\n * @param input\n * @param ctx\n */\nexport async function getMediaLocationsForProductAction(input: MediaLocationsInput, ctx: IActionContext): Promise<MediaLocation[]> {\n    const rsVersion =\n        !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n            ? '0.0'\n            : process.env.MSDyn365Commerce_RSVERSION;\n    const OmniChannelMediaFeatureVersion = versionGte(rsVersion, '9.43');\n    if (!OmniChannelMediaFeatureVersion) {\n        return [];\n    }\n    // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n    const types = require('@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g');\n\n    // TODO: once the dynamicProvider api for fetching the media locations from the azureCms is implemented\n    // we should uncomment these code so we can preview the product in edit mode without publish the product.\n    // if (ctx.requestContext.params && ctx.requestContext.params.isEditor) {\n    //     return getOmniChannelMediaInfoAsync(ctx.requestContext, input.productId);\n    // }\n\n    let productMediaLocations = [];\n    try {\n        productMediaLocations = await getMediaLocationsAsync(\n            {\n                callerContext: ctx,\n                queryResultSettings: {\n                    Paging: { Top: Number.parseInt(ctx.requestContext?.app?.platform?.defaultPageSizeForAPI ?? 100, 10) }\n                }\n            },\n            input.productId,\n            input.channelId,\n            input.catalogId\n        );\n    } catch (error) {\n        ctx.telemetry.error(`Error running getMediaLocationsAsync action: ${error}`);\n        return [];\n    }\n\n    // Filtering product images and videos only\n    let productImagesAndVideos = productMediaLocations.filter(\n        // @ts-ignore\n        media => media.MediaTypeValue === types.MediaType.Image || media.MediaTypeValue === types.MediaType.Video\n    );\n    if (productImagesAndVideos.length === 0) {\n        return [];\n    }\n\n    // sorting the images by display order settings.\n    productImagesAndVideos = productImagesAndVideos.sort((a, b) => {\n        // @ts-ignore\n        if (typeof a.DisplayOrder === 'undefined' && typeof b.DisplayOrder === 'undefined') {\n            return 0;\n            // @ts-ignore\n        } else if (typeof a.DisplayOrder === 'undefined') {\n            return 1;\n            // @ts-ignore\n        } else if (typeof b.DisplayOrder === 'undefined') {\n            return -1;\n        } else {\n            // @ts-ignore\n            return a.DisplayOrder - b.DisplayOrder;\n        }\n    });\n    const productMedia = productImagesAndVideos.map((mediaLocation: MediaLocation) => {\n        const mediaLoc = { ...mediaLocation };\n        // @ts-ignore\n        if (mediaLoc.MediaTypeValue === types.MediaType.Image) {\n            mediaLoc.Uri = generateImageUrlForOmniChanel(ctx.requestContext.apiSettings, mediaLocation.Uri);\n        }\n        return mediaLoc;\n    });\n\n    return productMedia;\n}\n\n/**\n * The getMediaLocationsForSelectedVariant data action\n * Gets the currently selected variant for the page via the getSelectedVariant data action,\n * and then gets the media location information for the variant via the MediaLocations RetailServer API.\n */\nexport const getMediaLocationsForSelectedVariantActionDataAction = createObservableDataAction({\n    id: '@msdyn365-commerce/get-mediaLocations',\n    action: <IAction<MediaLocation[] | null>>getMediaLocationsForProductAction\n});\n\nexport default getMediaLocationsForProductAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n    CacheType,\n    generateImageUrlForOmniChanel,\n    IAction,\n    IActionContext,\n    IActionInput,\n    IRequestContext,\n    versionGte\n} from '@msdyn365-commerce/core-internal';\n// @ts-ignore\nimport { MediaLocation, MediaType } from '@msdyn365-commerce/retail-proxy';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\nexport enum MediaLocationType {\n    All,\n    Image,\n    Video,\n    File\n}\n\n/**\n * The action input class for the getAdditionalMediaLocationsForSelectedVariant data action.\n */\nexport class AdditionalMediaLocationsInput implements IActionInput {\n    public productId: number;\n\n    public channelId: number;\n\n    public catalogId: number;\n\n    // defaulting to image for backwards compatibility, old version filters Image by default.\n    public typeFilter: MediaLocationType;\n\n    private readonly locale?: string;\n\n    constructor(context: IRequestContext, productId: number, channelId: number, catalogId?: number, typeFilter = MediaLocationType.All) {\n        this.productId = productId;\n        this.channelId = channelId;\n        this.catalogId = catalogId || 0;\n        this.typeFilter = typeFilter;\n        this.locale = context.locale;\n    }\n\n    public getCacheKey = () => `${this.productId}-${this.channelId}-${this.catalogId}-${this.locale}}-${this.typeFilter}`;\n\n    public getCacheObjectType = () => 'ProductAdditionalMediaLocations';\n\n    public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * The action method for the getAdditionalMediaLocationsForSelectedVariant data action.\n * @param input\n * @param ctx\n */\nexport async function getAdditionalMediaLocationsForProductAction(\n    input: AdditionalMediaLocationsInput,\n    ctx: IActionContext\n): Promise<MediaLocation[]> {\n    const rsVersion =\n        !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n            ? '0.0'\n            : process.env.MSDyn365Commerce_RSVERSION;\n    const OmniChannelAdditionalMediaFeatureVersion = versionGte(rsVersion, '9.46');\n    if (!OmniChannelAdditionalMediaFeatureVersion) {\n        return [];\n    }\n    // the types and productActions are not available in all versions of retail-proxy, so they are imported by direct reference after comparing the version to the minimum required(9.46)\n    // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n    const types = require('@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g');\n    // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n    const productActions = require('@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g');\n\n    // TODO: once the dynamicProvider api for fetching the media locations from the azureCms is implemented\n    // we should uncomment these code so we can preview the product in edit mode without publish the product.\n    // if (ctx.requestContext.params && ctx.requestContext.params.isEditor) {\n    //     return getOmniChannelMediaInfoAsync(ctx.requestContext, input.productId);\n    // }\n\n    let productMediaLocations = [];\n    try {\n        productMediaLocations = await productActions.searchMediaLocationsAsync(\n            {\n                callerContext: ctx,\n                queryResultSettings: {\n                    Paging: { Top: Number.parseInt(ctx.requestContext?.app?.platform?.defaultPageSizeForAPI ?? 100, 10) }\n                }\n            },\n            {\n                ProductId: input.productId,\n                ChannelId: input.channelId,\n                CatalogId: input.catalogId,\n                MediaUsageTypeValue: 1\n            }\n        );\n    } catch (error) {\n        ctx.telemetry.error(`Error running searchMediaLocationsAsync action: ${error}`);\n        return [];\n    }\n\n    // Need to add a second enum for MediaTypeValue because the RetailServer API returns a different enum for the MediaTypeValue property,\n    // where default is \"None\" instead of \"All\"\n    let filteredMedia: MediaLocation[] = [];\n    switch (input.typeFilter) {\n        case MediaLocationType.Image:\n            // @ts-ignore\n            filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.Image);\n            break;\n        case MediaLocationType.Video:\n            // @ts-ignore\n            filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.Video);\n            break;\n        case MediaLocationType.File:\n            // @ts-ignore\n            filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.File);\n            break;\n        default:\n            filteredMedia = productMediaLocations;\n    }\n    if (filteredMedia.length === 0) {\n        return [];\n    }\n\n    // sorting the images by display order settings.\n    filteredMedia = filteredMedia.sort((a, b) => {\n        // @ts-ignore\n        if (typeof a.DisplayOrder === 'undefined' && typeof b.DisplayOrder === 'undefined') {\n            return 0;\n            // @ts-ignore\n        } else if (typeof a.DisplayOrder === 'undefined') {\n            return 1;\n            // @ts-ignore\n        } else if (typeof b.DisplayOrder === 'undefined') {\n            return -1;\n        } else {\n            // @ts-ignore\n            return a.DisplayOrder - b.DisplayOrder;\n        }\n    });\n    const productMedia = filteredMedia.map((mediaLocation: MediaLocation) => {\n        mediaLocation.Uri = generateImageUrlForOmniChanel(ctx.requestContext.apiSettings, mediaLocation.Uri);\n        mediaLocation.AltText = mediaLocation.AltText;\n        return mediaLocation;\n    });\n    return productMedia;\n}\n\n/**\n * The getAdditionalMediaLocationsForSelectedVariantActionDataAction data action\n * Gets the currently selected variant for the page via the getSelectedVariant data action,\n * and then gets the media location information for the variant via the MediaLocations RetailServer API.\n */\nexport const getAdditionalMediaLocationsForSelectedVariantActionDataAction = createObservableDataAction({\n    id: '@msdyn365-commerce/get-additional-mediaLocations',\n    action: <IAction<MediaLocation[] | null>>getAdditionalMediaLocationsForProductAction\n});\n\nexport default getAdditionalMediaLocationsForProductAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n    CacheType,\n    IAction,\n    IActionContext,\n    IActionInput,\n    IAny,\n    ICommerceApiSettings,\n    ICreateActionContext,\n    IGeneric\n} from '@msdyn365-commerce/core-internal';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { readAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\n/**\n * Input class for get customer data action.\n */\nexport class GetCustomerInput implements IActionInput {\n    public customerAccountNumber?: string;\n\n    private readonly apiSettings: ICommerceApiSettings;\n\n    private readonly cacheType?: CacheType;\n\n    public constructor(apiSettings: ICommerceApiSettings, accountNumber?: string, cacheType?: CacheType) {\n        this.customerAccountNumber = accountNumber;\n        this.apiSettings = apiSettings;\n        this.cacheType = cacheType;\n    }\n\n    /**\n     * GetCacheKey.\n     * @returns - Returns string.\n     */\n    public getCacheKey = (): string => `Customer-${this.customerAccountNumber}-chanId:${this.apiSettings.channelId}`;\n\n    /**\n     * GetCacheObjectType.\n     * @returns - Cache Object Type string.\n     */\n    public getCacheObjectType = (): string => 'Customer';\n\n    /**\n     * DataCacheType.\n     * @returns - CacheType string.\n     */\n    public dataCacheType = (): CacheType => {\n        return this.cacheType ? this.cacheType : 'request';\n    };\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- The input data passed to the createInput method.\n * @returns - GetCustomer input.\n */\nexport const createGetCustomerInput = (inputData: ICreateActionContext<IGeneric<IAny>>): GetCustomerInput => {\n    const { user, apiSettings } = inputData.requestContext;\n    if (!user.token || !user.isAuthenticated) {\n        throw new Error('[getCustomer][createInput]: User is not Authenticated.');\n    }\n\n    return new GetCustomerInput(apiSettings);\n};\n\n/**\n * GetCustomerAction.\n * @param input - GetCustomerInput.\n * @param ctx - Action Context.\n * @returns - Customer information.\n */\nconst getCustomerAction = async (input: GetCustomerInput, ctx: IActionContext): Promise<Customer> => {\n    if (input && ctx.requestContext.user.isAuthenticated) {\n        try {\n            return readAsync({ callerContext: ctx, bypassCache: 'get' }, '').then(response => {\n                return Array.isArray(response) ? response[0] : response;\n            });\n        } catch (error) {\n            ctx.telemetry.error(`Error running getCustomer action: ${error}`);\n            return <Customer>{};\n        }\n    }\n\n    ctx.telemetry.warning('[getCustomer]Invalid input passed to action');\n    return <Customer>{};\n};\n\n/**\n * The customer data action.\n */\nexport const getCustomerActionDataAction = createObservableDataAction({\n    id: '@msdyn365-commerce/get-customer',\n    action: <IAction<Customer>>getCustomerAction,\n    input: createGetCustomerInput\n});\n\nexport default getCustomerActionDataAction;\n","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { BusinessPartner, OrderShipments, BusinessPartnerProspect, BusinessPartnerUser } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function businessPartnersQuery(businessPartnerId?: string): DataServiceQuery {\n        var key = (businessPartnerId) ? { BusinessPartnerId: businessPartnerId } : null;\n        return new DataServiceQuery(\"BusinessPartners\", \"BusinessPartner\", \"BusinessPartnerClass\", key);\n    }\n    \n    export function createCreateInput(entity: BusinessPartner): IDataServiceRequest {\n        return businessPartnersQuery().create(entity);\n    }\n\n    export function createBusinessPartnerAsync(context: IContext, entity: BusinessPartner): AsyncResult<BusinessPartner> {\n        const request = createCreateInput(entity);\n        return executeAction<BusinessPartner>(request, context);\n    }\n\n    export function createUpdateInput(entity: BusinessPartner): IDataServiceRequest {\n        return businessPartnersQuery(entity.BusinessPartnerId).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: BusinessPartner): AsyncResult<BusinessPartner> {\n        const request = createUpdateInput(entity);\n        return executeAction<BusinessPartner>(request, context);\n    }\n\n    export function createDeleteAsync(entity: BusinessPartner): IDataServiceRequest {\n        return businessPartnersQuery(entity.BusinessPartnerId).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: BusinessPartner): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(businessPartnerId: string): IDataServiceRequest {\n        return businessPartnersQuery(businessPartnerId).read();\n    }\n\n    export function readAsync(context: IContext, businessPartnerId: string): AsyncResult<BusinessPartner> {\n        const request = createReadAsync(businessPartnerId);\n        return executeAction<BusinessPartner>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return businessPartnersQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<BusinessPartner[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<BusinessPartner[]>(request, context);\n    }\n    \n    export function createGetOrderHistoryInput(queryResultSettings: IQueryResultSettings, businessPartnerId: string, ): IDataServiceRequest {      \n        const query = businessPartnersQuery(businessPartnerId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOrderHistory', false, \n             'OrderShipmentsClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrderShipments'}, { });\n    }    \n    \n    export function getOrderHistoryAsync(context: IContext, businessPartnerId: string):AsyncResult<OrderShipments[]> {\n        const request = createGetOrderHistoryInput(context.queryResultSettings, businessPartnerId);\n        return executeAction<OrderShipments[]>(request, context);\n    }          \n          \n    export function createCreateProspectInput(businessPartnerProspect?: BusinessPartnerProspect | null): IDataServiceRequest {      \n        const query = businessPartnersQuery();\n        return query.createDataServiceRequestForOperation('CreateProspect', true, \n             'BusinessPartnerProspectClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'BusinessPartnerProspect'}, {businessPartnerProspect: businessPartnerProspect });\n    }    \n    \n    export function createProspectAsync(context: IContext, businessPartnerProspect?: BusinessPartnerProspect | null):AsyncResult<BusinessPartnerProspect> {\n        const request = createCreateProspectInput(businessPartnerProspect);\n        return executeAction<BusinessPartnerProspect>(request, context);\n    }          \n          \n    export function createPromoteToSellerInput(businessPartnerId: string, ): IDataServiceRequest {      \n        const query = businessPartnersQuery(businessPartnerId);\n        return query.createDataServiceRequestForOperation('PromoteToSeller', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n    }    \n    \n    export function promoteToSellerAsync(context: IContext, businessPartnerId: string):AsyncResult<NullResult> {\n        const request = createPromoteToSellerInput(businessPartnerId);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createGetCurrentInput(): IDataServiceRequest {      \n        const query = businessPartnersQuery();\n        return query.createDataServiceRequestForOperation('GetCurrent', false, \n             'BusinessPartnerClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'BusinessPartner'}, { });\n    }    \n    \n    export function getCurrentAsync(context: IContext, ):AsyncResult<BusinessPartner> {\n        const request = createGetCurrentInput();\n        return executeAction<BusinessPartner>(request, context);\n    }          \n          \n    export function createGetManagedBusinessPartnersInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {      \n        const query = businessPartnersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetManagedBusinessPartners', false, \n             'BusinessPartnerClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'BusinessPartner'}, { });\n    }    \n    \n    export function getManagedBusinessPartnersAsync(context: IContext, ):AsyncResult<BusinessPartner[]> {\n        const request = createGetManagedBusinessPartnersInput(context.queryResultSettings, );\n        return executeAction<BusinessPartner[]>(request, context);\n    }          \n          \n    export function createGetUsersInput(queryResultSettings: IQueryResultSettings, businessPartnerId: string, ): IDataServiceRequest {      \n        const query = businessPartnersQuery(businessPartnerId).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetUsers', false, \n             'BusinessPartnerUserClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'BusinessPartnerUser'}, { });\n    }    \n    \n    export function getUsersAsync(context: IContext, businessPartnerId: string):AsyncResult<BusinessPartnerUser[]> {\n        const request = createGetUsersInput(context.queryResultSettings, businessPartnerId);\n        return executeAction<BusinessPartnerUser[]>(request, context);\n    }          \n          \n    ","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n  // eslint-disable-next-line unicorn/no-thenable -- required for testing\n  NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = isCallable(onFinally);\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n  var method = getBuiltIn('Promise').prototype['finally'];\n  if (NativePromisePrototype['finally'] !== method) {\n    defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n  }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// TODO - refactor to incorporate inbuilt JS extension method\n// TODO - integrate Trace.error\n\nexport const EMPTY = '';\n\nexport function convertToString(obj: any, accumulator: string[] = [], depth: number = 0): string {\n    if (!obj) {\n        return null;\n    }\n\n    if (typeof obj === 'string') {\n        return obj;\n    }\n\n    if (typeof obj !== 'object') {\n        return obj.toString();\n    }\n\n    for (const prop in obj) {\n        if (obj.hasOwnProperty(prop)) {\n            const value = obj[prop];\n            const stringifyValue = convertToString(value, accumulator, depth + 1);\n            if (stringifyValue) {\n                if (accumulator.length > 0 && depth === 0) {\n                    accumulator.push('&');\n                }\n                accumulator.push(prop);\n                accumulator.push(typeof value === 'object' ? '.' : ':');\n                accumulator.push(stringifyValue);\n            }\n        }\n    }\n\n    if (depth === 0) {\n        return accumulator.join(EMPTY);\n    }\n}\n\n/**\n * Verifies whether the object array has elements.\n *\n * @param {any[]} array The array.\n * @return {boolean} True if the object has elements, false otherwise.\n */\nexport function hasElements(array?: any[]): boolean {\n    return !!array && array.length > 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isObjectNotEmptyOrNull(value: object): boolean {\n    return value && typeof value === 'object' && Object.keys(value).length > 0;\n}\n\n/**\n * Verifies whether the string is empty, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty, false otherwise.\n */\nexport function isEmpty(object: string): boolean {\n    if (object && typeof object !== 'string') {\n        // Tracer.Error(\"StringExtensions.isEmpty() has received input parameter not of type string.\");\n    }\n    return object != null && object.length === 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isEmptyOrWhitespace(object: string): boolean {\n    if (object && typeof object !== 'string') {\n        // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace() has received input parameter not of type string.\");\n    }\n    if (object) {\n        // Make sure object is of type string\n        object = object.toString();\n\n        return typeof object.trim === 'function' && (object.trim() || '').length === 0;\n    }\n    return false;\n}\n\n/**\n * Verifies whether the string is null or whitespace.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is null or whitespace, false otherwise.\n */\nexport function isNullOrWhitespace(object: string): boolean {\n    if (object && typeof object !== 'string') {\n        // Tracer.Error(\"StringExtensions.isNullOrWhitespace() has received input parameter not of type string.\");\n    }\n    let returnValue = true;\n    try {\n        returnValue = !object;\n        if (!returnValue) {\n            // Make sure object is of type string\n            object = object.toString();\n            returnValue = object.trim().length === 0;\n        }\n    } catch (err) {\n        // Commerce.Proxy.Tracer.Error(\"StringExtensions.isNullOrWhitespace() caught exception = {0}\", err.message);\n    }\n\n    return returnValue;\n}\n\n/**\n * Pad left with padString until the required length is reached.\n */\nexport function padLeft(object: string, padString: string, length: number): string {\n    if (object && typeof object !== 'string') {\n        // Tracer.Error(\"StringExtensions.padLeft() has received input parameter not of type string.\");\n    }\n\n    if (!padString || !object) {\n        return object;\n    }\n\n    while (object.length < length) {\n        object = padString + object;\n    }\n    return object;\n}\n\n/**\n * Pad right with padString until the required length is reached.\n */\nexport function padRight(object: string, padString: string, length: number): string {\n    if (object && typeof object !== 'string') {\n        // Tracer.Error(\"StringExtensions.padRight() has received input parameter not of type string.\");\n    }\n\n    if (!padString || !object) {\n        return object;\n    }\n\n    while (object.length < length) {\n        object += padString;\n    }\n    return object;\n}\n\n/**\n * Basic C# like string format function.\n */\nexport function format(object: string, ...params: any[]): string {\n    if (object && typeof object !== 'string') {\n        // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace has received input parameter not of type string.\");\n    }\n\n    if (isNullOrWhitespace(object)) {\n        return object;\n    }\n\n    if (params == null) {\n        throw new Error('StringExtensions::format Invalid parameter (params) cannot be null.');\n    }\n\n    for (let index = 0; index < params.length; index++) {\n        if (params[index] == null) {\n            throw new Error('StringExtensions::format Invalid parameter (at index ' + index + ') cannot be null or undefined.');\n        }\n\n        // escape '$' to avoid '$0' issue, '$$$$' means '$$' escaped\n        const param = params[index].toString().replace(/\\$/gi, '$$$$');\n        const regexp = new RegExp('\\\\{' + index + '\\\\}', 'gi');\n        object = object.replace(regexp, param);\n    }\n\n    return object;\n}\n\n/**\n * Returns an ordinal to indicate the ordering of the strings\n * -1: This object is less than comparison object\n * 0: This object is equal to the comparison object\n * 1: This object is greater than the comparison object\n */\nexport function compare(object: string, comparisonObject: string, ignoreCase?: boolean): number {\n    if (!object && !comparisonObject) {\n        return 0;\n    } else if (!object) {\n        return -1;\n    } else if (!comparisonObject) {\n        return 1;\n    }\n\n    const val1: string = ignoreCase ? object.toLowerCase() : object;\n    const val2: string = ignoreCase ? comparisonObject.toLowerCase() : comparisonObject;\n\n    return val1 < val2 ? -1 : val1 > val2 ? 1 : 0;\n}\n\n/**\n * Replaces new line character with <br /> for display.\n */\nexport function replaceNewLineWithBr(text: string) {\n    if (text) {\n        return replaceAll(text, '\\n', '<br />');\n    }\n\n    return text;\n}\n\n/**\n * Replaces all instances of @txtToReplace\n */\nexport function replaceAll(txt, txtToReplace, valueToReplaceWith) {\n    return txt.replace(new RegExp(txtToReplace, 'g'), valueToReplaceWith);\n}\n\n/**\n * Escapes single quote to be send as part of URLs.\n */\nexport function escapeSingleQuote(text: string) {\n    return text.replace(/(')/g, '\\'$1');\n}\n\n/**\n * Removes the trailing slashes from the URI.\n *\n * @param {string} uri The URI to clean.\n * @return {string} The uri without trailing slashes.\n */\nexport function CleanUri(uri: string): string {\n    if (isNullOrWhitespace(uri)) {\n        return EMPTY;\n    }\n\n    // the cutoff index for the string\n    let cutoffIndex = uri.length - 1;\n\n    while (cutoffIndex >= 0 && (uri[cutoffIndex] === '/' || uri[cutoffIndex] === '\\\\')) {\n        --cutoffIndex;\n    }\n\n    // if it ever becomes negative, cutoffIndex + 1 = 0\n    return uri.substr(0, cutoffIndex + 1);\n}\n\n/**\n * Determines whether the end of string matches a specified string.\n *\n * @param {string} str: The string to search in.\n * @param {string} suffix: The string to compare to the substring at the end of str.\n * @param {boolean} caseSensitive: Determines if the comparison case sensitive (false, by default)\n * @return {boolean} true if suffix matches the end of str; otherwise, false.\n */\nexport function endsWith(str: string, suffix: string, caseSensitive: boolean = false): boolean {\n    if (!str || !suffix) {\n        return false;\n    }\n    if (suffix.length > str.length) {\n        return false;\n    }\n\n    const originalString: string = caseSensitive ? str : str.toLowerCase();\n    const subString: string = caseSensitive ? suffix : suffix.toLowerCase();\n    return originalString.indexOf(subString, originalString.length - subString.length) !== -1;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat !== $parseFloat }, {\n  parseFloat: $parseFloat\n});\n","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { CommerceList, CommerceListLine, CommerceListContributor, CommerceListInvitation } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function commerceListsQuery(id?: number): DataServiceQuery {\n        var key = (id) ? { Id: id } : null;\n        return new DataServiceQuery(\"CommerceLists\", \"CommerceList\", \"CommerceListClass\", key);\n    }\n    \n    export function createCreateInput(entity: CommerceList): IDataServiceRequest {\n        return commerceListsQuery().create(entity);\n    }\n\n    export function createCommerceListAsync(context: IContext, entity: CommerceList): AsyncResult<CommerceList> {\n        const request = createCreateInput(entity);\n        return executeAction<CommerceList>(request, context);\n    }\n\n    export function createUpdateInput(entity: CommerceList): IDataServiceRequest {\n        return commerceListsQuery(entity.Id).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: CommerceList): AsyncResult<CommerceList> {\n        const request = createUpdateInput(entity);\n        return executeAction<CommerceList>(request, context);\n    }\n\n    export function createDeleteAsync(entity: CommerceList): IDataServiceRequest {\n        return commerceListsQuery(entity.Id).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: CommerceList): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(id: number): IDataServiceRequest {\n        return commerceListsQuery(id).read();\n    }\n\n    export function readAsync(context: IContext, id: number): AsyncResult<CommerceList> {\n        const request = createReadAsync(id);\n        return executeAction<CommerceList>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return commerceListsQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<CommerceList[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<CommerceList[]>(request, context);\n    }\n    \n    export function createGetByCustomerInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest {      \n        const query = commerceListsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetByCustomer', true, \n             'CommerceListClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'CommerceList'}, {customerId: customerId });\n    }    \n    \n    export function getByCustomerAsync(context: IContext, customerId?: string | null):AsyncResult<CommerceList[]> {\n        const request = createGetByCustomerInput(context.queryResultSettings, customerId);\n        return executeAction<CommerceList[]>(request, context);\n    }          \n          \n    export function createAddLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest {      \n        const query = commerceListsQuery(id);\n        return query.createDataServiceRequestForOperation('AddLines', true, \n             'CommerceListClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n    }    \n    \n    export function addLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult<CommerceList> {\n        const request = createAddLinesInput(id, commerceListLines);\n        return executeAction<CommerceList>(request, context);\n    }          \n          \n    export function createUpdateLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest {      \n        const query = commerceListsQuery(id);\n        return query.createDataServiceRequestForOperation('UpdateLines', true, \n             'CommerceListClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n    }    \n    \n    export function updateLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult<CommerceList> {\n        const request = createUpdateLinesInput(id, commerceListLines);\n        return executeAction<CommerceList>(request, context);\n    }          \n          \n    export function createRemoveLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest {      \n        const query = commerceListsQuery(id);\n        return query.createDataServiceRequestForOperation('RemoveLines', true, \n             'CommerceListClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n    }    \n    \n    export function removeLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult<CommerceList> {\n        const request = createRemoveLinesInput(id, commerceListLines);\n        return executeAction<CommerceList>(request, context);\n    }          \n          \n    export function createMoveLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest {      \n        const query = commerceListsQuery();\n        return query.createDataServiceRequestForOperation('MoveLines', true, \n             'CommerceListClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n    }    \n    \n    export function moveLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult<CommerceList> {\n        const request = createMoveLinesInput(commerceListLines, destinationId);\n        return executeAction<CommerceList>(request, context);\n    }          \n          \n    export function createCopyLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest {      \n        const query = commerceListsQuery();\n        return query.createDataServiceRequestForOperation('CopyLines', true, \n             'CommerceListClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n    }    \n    \n    export function copyLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult<CommerceList> {\n        const request = createCopyLinesInput(commerceListLines, destinationId);\n        return executeAction<CommerceList>(request, context);\n    }          \n          \n    export function createAddContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest {      \n        const query = commerceListsQuery(id);\n        return query.createDataServiceRequestForOperation('AddContributors', true, \n             'CommerceListClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n    }    \n    \n    export function addContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult<CommerceList> {\n        const request = createAddContributorsInput(id, commerceListContributors);\n        return executeAction<CommerceList>(request, context);\n    }          \n          \n    export function createRemoveContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest {      \n        const query = commerceListsQuery(id);\n        return query.createDataServiceRequestForOperation('RemoveContributors', true, \n             'CommerceListClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n    }    \n    \n    export function removeContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult<CommerceList> {\n        const request = createRemoveContributorsInput(id, commerceListContributors);\n        return executeAction<CommerceList>(request, context);\n    }          \n          \n    export function createCreateInvitationsInput(id: number, commerceListInvitations?: CommerceListInvitation[] | null): IDataServiceRequest {      \n        const query = commerceListsQuery(id);\n        return query.createDataServiceRequestForOperation('CreateInvitations', true, \n             'CommerceListClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListInvitations: commerceListInvitations });\n    }    \n    \n    export function createInvitationsAsync(context: IContext, id: number, commerceListInvitations?: CommerceListInvitation[] | null):AsyncResult<CommerceList> {\n        const request = createCreateInvitationsInput(id, commerceListInvitations);\n        return executeAction<CommerceList>(request, context);\n    }          \n          \n    export function createAcceptInvitationInput(invitationToken?: string | null, customerId?: string | null): IDataServiceRequest {      \n        const query = commerceListsQuery();\n        return query.createDataServiceRequestForOperation('AcceptInvitation', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invitationToken: invitationToken, customerId: customerId });\n    }    \n    \n    export function acceptInvitationAsync(context: IContext, invitationToken?: string | null, customerId?: string | null):AsyncResult<NullResult> {\n        const request = createAcceptInvitationInput(invitationToken, customerId);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\nexport class ProxyErrorSDK extends Error {\n    public errorCode: string;\n    public errorMessage: string;\n    public localizedErrorMessage: string = '';\n    public canRetry: boolean = false;\n    public commerceException: any;\n    public formatData: any[] = [];\n    public requestUri: any;\n    public data: any;\n    public statusCode: any;\n\n    constructor(\n        errorCode: string,\n        errorMessage: string,\n        canRetry: boolean\n    ) {\n        super();\n        this.name = errorCode;\n        this.message = errorMessage;\n        this.errorCode = errorCode;\n        this.errorMessage = errorMessage;\n        this.canRetry = canRetry;\n        Object.setPrototypeOf(this, ProxyErrorSDK.prototype);\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\n\nimport { ProxyErrorSDK } from './ProxyErrorSDK';\n\n'use strict';\n\n/**\n * Class for representing an error.\n */\nexport class ProxyError {\n    private _errorCode: string;\n    private _errorMessage: string;\n    private _localizedErrorMessage: string;\n    private _canRetry: boolean = false;\n    private _commerceException: any;\n    private _formatData: any[];\n    private _extraData: any;\n\n    constructor(errorCode: string, errorMessage: string, localizedErrorMessage, canRetry: boolean, extraData: any, ...formatData: any[]) {\n        this._errorCode = errorCode;\n        this._errorMessage = errorMessage;\n        this._localizedErrorMessage = localizedErrorMessage;\n        this._canRetry = canRetry;\n        this._commerceException = null;\n        this._formatData = formatData;\n        if (extraData && typeof extraData == 'object' && extraData.request) {\n            // Remove sensitive data (EUII) so that it doesn't get logged to AppInsights\n            extraData.request.headers = {};\n            extraData.request.data = {};\n            extraData.request.body = {};\n        }\n        this._extraData = extraData;\n    }\n\n    /**\n     * Takes a proxy error and returns a proper JS error version of it\n     * @param proxyError The proxyError\n     */\n    public static toError(proxyError: ProxyError): Error {\n        const errorName = proxyError.ErrorCode || 'Proxy Error';\n        const errorMessage = proxyError.ErrorMessage || proxyError.LocalizedErrorMessage;\n        const e = new ProxyErrorSDK(errorName, errorMessage, proxyError.CanRetry);\n\n        // Assign extra error details to error.\n        // ts-ignoring as the standard error contract only supports name and message\n        if (proxyError.extraData) {\n            e.requestUri = proxyError.extraData.requestUri;\n\n            e.data = proxyError.extraData.data;\n\n            e.statusCode = proxyError.extraData.statusCode;\n        }\n\n        return e;\n    }\n\n    /**\n     * Gets the commerce exception that caused this error.\n     *\n     * @return {any} The commerce exception.\n     */\n    public get commerceException(): any {\n        return this._commerceException;\n    }\n\n    /**\n     * Sets the commerce exception that caused this error.\n     *\n     * @param {any} exception The commerce exception.\n     */\n    public set commerceException(exception: any) {\n        this._commerceException = exception;\n    }\n\n    /**\n     * Gets the error code.\n     *\n     * @return {string} The error code.\n     */\n    public get ErrorCode(): string {\n        return this._errorCode;\n    }\n\n    /**\n     * Gets the error message.\n     *\n     * @return {string} The error message.\n     */\n    public get ErrorMessage(): string {\n        return this._errorMessage;\n    }\n\n    /**\n     * Gets the localized error message.\n     *\n     * @return {string} The localized error message.\n     */\n    public get LocalizedErrorMessage(): string {\n        return this._localizedErrorMessage;\n    }\n\n    /**\n     * Gets the format data used on formatted error messages.\n     *\n     * @return {any[]} The format data.\n     */\n    public get formatData(): any[] {\n        return this._formatData;\n    }\n\n    /**\n     * Gets the additional information the might be supplied by the error.\n     *\n     * @return {any} The extra data.\n     */\n    public get extraData(): any {\n        return this._extraData;\n    }\n\n    /**\n     * Gets the error title. Defaults to the resource string string_29004 for the error title if\n     * no error title is mapped for the error.\n     */\n    public get ErrorTitleResourceId(): string {\n        const errorTitleResourceId = 'string_29004'; // Error string: There is a problem with the server\n        return errorTitleResourceId;\n    }\n\n    /**\n     * Gets whether the action that generated the error can be retried.\n     *\n     * @return {string} Whether the action that generated the error can be retried.\n     */\n    public get CanRetry(): boolean {\n        return this._canRetry;\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum EventLevel {\n    LogAlways = 0,\n    Critical = 1,\n    Error = 2,\n    Warning = 3,\n    Informational = 4,\n    Verbose = 5\n}\n\nexport enum EventChannel {\n    Admin = 16,\n    Operational = 17,\n    Analytic = 18,\n    Debug = 19\n}\n\nexport interface ILoggingSink {\n    writeEvent(event: Event): void;\n    setSessionInfo(\n        appSessionId: string,\n        userSessionId: string,\n        deviceId: string,\n        deviceNumber: string,\n        terminalId: string,\n        userId: string,\n        tenantId: string,\n        offlineAvailability: string,\n        offlineCurrentMode: string,\n        screenResolution: string\n    ): void;\n    setInstrumentationKey(instrumentationKey: string): void;\n}\n\nexport class Utils {\n    public static getParameterNames(func: Function): string[] {\n        return [];\n    }\n\n    public static generateGuid(): string {\n        return '';\n    }\n\n    public static emptyGuid(): string {\n        return '';\n    }\n}\n\nexport enum EventType {\n    None = 0,\n    Custom = 1,\n    PageView = 2\n}\n\nexport class PageViewMetadata {\n    public PageName: string;\n}\n\nexport class EventStaticMetadata {\n    public Name: string;\n    public Id: number;\n    public Version: number;\n    public Level: EventLevel;\n    public LevelName: string;\n    public Channel: EventChannel;\n    public ChannelName: string;\n    public Keywords: string[];\n    public Task: string;\n    public OpCode: string;\n    public Message: string;\n}\n\nexport class EventCoreFields {\n    public ClientTimestamp: number;\n    public AppSessionId: string;\n    public UserSessionId: string;\n    public DeviceId: string;\n    public DeviceNumber: string;\n    public TerminalId: string;\n    public UserId: string;\n    public TenantId: string;\n    public OfflineAvailability: string;\n    public OfflineCurrentMode: string;\n    public ScreenResolution: string;\n}\n\nexport class Event {\n    public Type: EventType;\n    public PageViewMetadata: PageViewMetadata;\n    public StaticMetadata: EventStaticMetadata;\n    public CoreFields: EventCoreFields;\n    public Payload: {\n        [name: string]: any;\n    };\n    constructor(\n        type: EventType,\n        appSessionId: string,\n        userSessionId: string,\n        deviceId: string,\n        deviceNumber: string,\n        terminalId: string,\n        userId: string,\n        tenantId: string,\n        offlineAvailability: string,\n        offlineCurrentMode: string,\n        screenResolution: string\n    ) {}\n}\n\nexport class DebuggingConsoleSink implements ILoggingSink {\n    public setSessionInfo(\n        appSessionId: string,\n        userSessionId: string,\n        deviceId: string,\n        deviceNumber: string,\n        terminalId: string,\n        userId: string,\n        tenantId: string,\n        offlineAvailability: string,\n        offlineCurrentMode: string\n    ): void {}\n\n    public setInstrumentationKey(instrumentationKey: string): void {}\n\n    public writeEvent(event: Event): void {}\n}\n\nexport class LoggerBase {\n    public static writeEvent(\n        name: string,\n        eventId: number,\n        version: number,\n        channel: EventChannel,\n        level: EventLevel,\n        keywords: string[],\n        task: string,\n        opCode: string,\n        message: string\n    ) {\n        // console.log(`name: ${name}, eventId: ${eventId}, version: ${version}, channel: ${this.getEnumKeyForValue(EventChannel, channel)}`);\n        // console.log(\n        //     `level: ${this.getEnumKeyForValue(\n        //         EventLevel,\n        //         level\n        //     )}, keywords: ${keywords.toString()}, task: ${task}, opCode: ${opCode}, message: ${message}`\n        // );\n    }\n\n    public static addLoggingSink(loggingSink: ILoggingSink): void {}\n\n    public static getEnumKeyForValue(enumType: any, value: number): string {\n        for (const key in Object.keys(enumType)) {\n            if (enumType[key] === value) {\n                return key;\n            }\n        }\n        return '';\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EventChannel, EventLevel, ILoggingSink, LoggerBase } from './ConsoleEventWriter';\n\n/**\n * Attaches the logging sink to the LoggerBase.\n *\n * @method attachLoggingSink\n * @param sink {ILoggingSink} Sink to attach to Retail Logger.\n */\nexport function attachLoggingSink(sink: ILoggingSink) {\n    LoggerBase.addLoggingSink(sink);\n}\n\nexport const modelManagersRetailServerRequestStarted = (requestId: string, requestUrl: string): void => {\n    LoggerBase.writeEvent(\n        'ModelManagersRetailServerRequestStarted',\n        44004,\n        1,\n        EventChannel.Debug,\n        EventLevel.Informational,\n        [],\n        '',\n        '',\n        \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n    );\n};\n\nexport const modelManagersRetailServerRequestError = (requestId: string, requestUrl: string, error: string): void => {\n    LoggerBase.writeEvent(\n        'ModelManagersRetailServerRequestError',\n        44005,\n        1,\n        EventChannel.Operational,\n        EventLevel.Error,\n        [],\n        '',\n        '',\n        \"The Retail Server Request with request id '{0}' and request url '{1}' failed.  Error: {2}.\"\n    );\n};\n\nexport const modelManagersRetailServerRequestFinished = (requestId: string, requestUrl: string): void => {\n    LoggerBase.writeEvent(\n        'ModelManagersRetailServerRequestFinished',\n        44006,\n        EventChannel.Debug,\n        1,\n        EventLevel.Informational,\n        [],\n        '',\n        '',\n        \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n    );\n};\n\nexport const genericWarning = (message: string): void => {\n    LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n};\n\nexport const genericError = (message: string): void => {\n    LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n};\n\nexport const genericInfo = (message: string): void => {\n    LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n};\n\n/**\n * Class represents proxy events.\n * Event Code Range: 44000 - 44999.\n */\nexport class RetailLogger {\n    public static LogEvent(eventName: Function, error?: string): void {\n        error ? eventName(error) : eventName();\n    }\n\n    // Core - Event Range: 44000 - 44099.\n    public static genericError(message: string): void {\n        LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n    }\n\n    public static genericWarning(message: string): void {\n        LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n    }\n\n    public static genericInfo(message: string): void {\n        LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n    }\n\n    public static modelManagersRetailServerRequestStarted(requestId: string, requestUrl: string): void {\n        LoggerBase.writeEvent(\n            'ModelManagersRetailServerRequestStarted',\n            44004,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n        );\n    }\n\n    public static modelManagersRetailServerRequestError(requestId: string, requestUrl: string, error: string): void {\n        LoggerBase.writeEvent(\n            'ModelManagersRetailServerRequestError',\n            44005,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            \"The Retail Server Request with request id '{0}' and request url '{1}' failed.  Error: {2}.\"\n        );\n    }\n\n    public static modelManagersRetailServerRequestFinished(requestId: string, requestUrl: string): void {\n        LoggerBase.writeEvent(\n            'ModelManagersRetailServerRequestFinished',\n            44006,\n            EventChannel.Debug,\n            1,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n        );\n    }\n\n    public static initEntitySetInvalidError(entitySetId: string): void {\n        LoggerBase.writeEvent(\n            'InitEntitySetInvalidError',\n            44007,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            \"A method with invalid InitEntitySet id '{0}' was reported.\"\n        );\n    }\n\n    public static initEntitySetMultipleTimesError(entitySetId: string): void {\n        LoggerBase.writeEvent(\n            'InitEntitySetMultipleTimesError',\n            44008,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            \"A method with InitEntitySet ID '{0}' was reported multiple times.\"\n        );\n    }\n\n    public static initEntitySetNoMethodNumberError(): void {\n        LoggerBase.writeEvent(\n            'InitEntitySetNoMethodNumberError',\n            44009,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'The value InitEntitySet.All does not represent the number of methods that can be run'\n        );\n    }\n\n    public static initPaymentEntitySetInvalidError(entitySetId: string): void {\n        LoggerBase.writeEvent(\n            'InitPaymentEntitySetInvalidError',\n            44010,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            \"A method with invalid InitPaymentEntitySet id '{0}' was reported.\"\n        );\n    }\n\n    public static initPaymentEntitySetMultipleTimesError(entitySetId: string): void {\n        LoggerBase.writeEvent(\n            'InitPaymentEntitySetMultipleTimesError',\n            44011,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            \"A method with InitPaymentEntitySet ID '{0}' was reported multiple times.\"\n        );\n    }\n\n    public static initPaymentEntitySetNoMethodNumberError(): void {\n        LoggerBase.writeEvent(\n            'InitPaymentEntitySetNoMethodNumberError',\n            44012,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'The value InitPaymentEntitySet.All does not represent the number of methods that can be run'\n        );\n    }\n\n    // Shopping Cart Service - Event Range: 44100 - 44199.\n    public static shoppingCartServiceGetShoppingCartStarted(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartServiceGetShoppingCartStarted',\n            44100,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get shopping cart started.'\n        );\n    }\n\n    public static shoppingCartServiceGetShoppingCartError(error: string): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartServiceGetShoppingCartError',\n            44101,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get shopping cart failed with error {0}.'\n        );\n    }\n\n    public static shoppingCartServiceGetShoppingCartFinished(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartServiceGetShoppingCartFinished',\n            44102,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get shopping cart finished.'\n        );\n    }\n\n    public static shoppingCartServiceRemoveFromCartStarted(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartServiceRemoveFromCartStarted',\n            44104,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Removing item from cart started.'\n        );\n    }\n\n    public static shoppingCartServiceRemoveFromCartError(error: string): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartServiceRemoveFromCartError',\n            44105,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Removing item from cart failed with error {0}.'\n        );\n    }\n\n    public static shoppingCartServiceRemoveFromCartFinished(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartServiceRemoveFromCartFinished',\n            44106,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Removing item from cart finished.'\n        );\n    }\n\n    public static shoppingCartApplyPromotionCodeStarted(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartApplyPromotionCodeStarted',\n            44108,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Applying promotion code started.'\n        );\n    }\n\n    public static shoppingCartApplyPromotionCodeError(error: string): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartApplyPromotionCodeError',\n            44109,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Applying promotion code failed with error {0}.'\n        );\n    }\n\n    public static shoppingCartApplyPromotionCodeFinished(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartApplyPromotionCodeFinished',\n            44110,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Applying promotion code finished.'\n        );\n    }\n\n    public static shoppingCartUpdateQuantityStarted(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartUpdateQuantityStarted',\n            44112,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Updating quantity started.'\n        );\n    }\n\n    public static shoppingCartUpdateQuantityError(error: string): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartUpdateQuantityError',\n            44113,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Updating quantity failed with error {0}.'\n        );\n    }\n\n    public static shoppingCartUpdateQuantityFinished(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartUpdateQuantityFinished',\n            44114,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Updating quantity finished.'\n        );\n    }\n\n    public static shoppingCartRemovePromotionCodeStarted(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartRemovePromotionCodeStarted',\n            44116,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Removing promotion code started.'\n        );\n    }\n\n    public static shoppingCartRemovePromotionCodeError(error: string): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartRemovePromotionCodeError',\n            44117,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Removing promotion code failed with error {0}.'\n        );\n    }\n\n    public static shoppingCartRemovePromotionCodeFinished(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartRemovePromotionCodeFinished',\n            44118,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Removing promotion code finished.'\n        );\n    }\n\n    public static shoppingCartUpdateLoyaltyCardIdStarted(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartUpdateLoyaltyCardIdStarted',\n            44120,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Updating loyalty card id started.'\n        );\n    }\n\n    public static shoppingCartUpdateLoyaltyCardIdError(error: string): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartUpdateLoyaltyCardIdError',\n            44121,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Updating loyalty card id failed with error {0}.'\n        );\n    }\n\n    public static shoppingCartUpdateLoyaltyCardIdFinished(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartUpdateLoyaltyCardIdFinished',\n            44122,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Updating loyalty card id finished.'\n        );\n    }\n\n    public static shoppingCartCommenceCheckoutStarted(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartCommenceCheckoutStarted',\n            44124,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Commence checkout started.'\n        );\n    }\n\n    public static shoppingCartCommenceCheckoutError(error: string): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartCommenceCheckoutError',\n            44125,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Commence checkout failed with error {0}.'\n        );\n    }\n\n    public static shoppingCartCommenceCheckoutFinished(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartCommenceCheckoutFinished',\n            44126,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Commence checkout finished.'\n        );\n    }\n\n    public static shoppingCartGetPromotionsStarted(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartGetPromotionsStarted',\n            44128,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting promotions started.'\n        );\n    }\n\n    public static shoppingCartGetPromotionsError(error: string): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartGetPromotionsError',\n            44129,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Getting promotions failed with error {0}.'\n        );\n    }\n\n    public static shoppingCartGetPromotionsFinished(): void {\n        LoggerBase.writeEvent(\n            'ShoppingCartGetPromotionsFinished',\n            44130,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting promotions finished.'\n        );\n    }\n\n    public static getSimpleProductsByIdStarted(): void {\n        LoggerBase.writeEvent(\n            'getSimpleProductsByIdStarted',\n            44132,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting simple products by ids started.'\n        );\n    }\n\n    public static getSimpleProductsByIdError(error: string): void {\n        LoggerBase.writeEvent(\n            'getSimpleProductsByIdError',\n            44133,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Getting simple products by ids failed with error {0}.'\n        );\n    }\n\n    public static getSimpleProductsByIdFinished(): void {\n        LoggerBase.writeEvent(\n            'getSimpleProductsByIdFinished',\n            44134,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting simple products by ids finished.'\n        );\n    }\n\n    public static getKitComponentsError(): void {\n        LoggerBase.writeEvent(\n            'GetKitComponentsError',\n            44136,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'One of the kit components could not be retrieved.'\n        );\n    }\n\n    public static searchProductsByProductIdsStarted(): void {\n        LoggerBase.writeEvent(\n            'SearchProductsByProductIdsStarted',\n            44140,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Searching products by product ids started.'\n        );\n    }\n\n    public static searchProductsByProductIdsError(error: string): void {\n        LoggerBase.writeEvent(\n            'SearchProductsByProductIdsError',\n            44141,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Searching products by product ids failed with error {0}.'\n        );\n    }\n\n    public static searchProductsByProductIdsFinished(): void {\n        LoggerBase.writeEvent(\n            'SearchProductsByProductIdsFinished',\n            44142,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Searching products by product ids finished.'\n        );\n    }\n\n    // Checkout Service - Event Range: 44200 - 44299.\n    public static checkoutServiceGetAllDeliveryOptionDescriptionsStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetAllDeliveryOptionDescriptionsStarted',\n            44200,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get all delivery option descriptions started.'\n        );\n    }\n\n    public static checkoutServiceGetAllDeliveryOptionDescriptionsError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetAllDeliveryOptionDescriptionsError',\n            44201,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get all delivery option descriptions failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceGetAllDeliveryOptionDescriptionsFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetAllDeliveryOptionDescriptionsFinished',\n            44202,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get all delivery option descriptions finished.'\n        );\n    }\n\n    public static checkoutServiceGetDeliveryPreferencesStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetDeliveryPreferencesStarted',\n            44204,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting delivery preferences started.'\n        );\n    }\n\n    public static checkoutServiceGetDeliveryPreferencesError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetDeliveryPreferencesError',\n            44205,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Getting delivery preferences failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceGetDeliveryPreferencesFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetDeliveryPreferencesFinished',\n            44206,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting delivery preferences finished.'\n        );\n    }\n\n    public static checkoutServiceGetOrderDeliveryOptionsStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetOrderDeliveryOptionsStarted',\n            44208,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting order delivery options started.'\n        );\n    }\n\n    public static checkoutServiceGetOrderDeliveryOptionsError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetOrderDeliveryOptionsError',\n            44209,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Getting order delivery options failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceGetOrderDeliveryOptionsFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetOrderDeliveryOptionsFinished',\n            44210,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting order delivery options finished.'\n        );\n    }\n\n    public static checkoutServiceGetItemDeliveryOptionsStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetItemDeliveryOptionsStarted',\n            44212,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting item delivery options started.'\n        );\n    }\n\n    public static checkoutServiceGetItemDeliveryOptionsError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetItemDeliveryOptionsError',\n            44213,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Getting item delivery options failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceGetItemDeliveryOptionsFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetItemDeliveryOptionsFinished',\n            44214,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting item delivery options finished.'\n        );\n    }\n\n    public static checkoutServiceUpdateDeliverySpecificationsStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceUpdateDeliverySpecificationsStarted',\n            44216,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update of order delivery specifications started.'\n        );\n    }\n\n    public static checkoutServiceUpdateDeliverySpecificationsError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceUpdateDeliverySpecificationsError',\n            44217,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Update of order delivery specifications failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceUpdateDeliverySpecificationsFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceUpdateDeliverySpecificationsFinished',\n            44218,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update of order delivery specifications finished.'\n        );\n    }\n\n    public static checkoutServiceUpdateLineDeliverySpecificationsStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceUpdateLineDeliverySpecificationsStarted',\n            44220,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update of line delivery specifications started.'\n        );\n    }\n\n    public static checkoutServiceUpdateLineDeliverySpecificationsError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceUpdateLineDeliverySpecificationsError',\n            44221,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Update of line delivery specifications failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceUpdateLineDeliverySpecificationsFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceUpdateLineDeliverySpecificationsFinished',\n            44222,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update of line delivery specifications finished.'\n        );\n    }\n\n    public static checkoutServiceGetPaymentCardTypesStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetPaymentCardTypesStarted',\n            44224,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting payment card types started.'\n        );\n    }\n\n    public static checkoutServiceGetPaymentCardTypesError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetPaymentCardTypesError',\n            44225,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Getting payment card types failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceGetPaymentCardTypesFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetPaymentCardTypesFinished',\n            44226,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting payment card types finished.'\n        );\n    }\n\n    public static checkoutServiceGetGiftCardBalanceStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetGiftCardBalanceStarted',\n            44228,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting gift card balance started.'\n        );\n    }\n\n    public static checkoutServiceGetGiftCardBalanceError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetGiftCardBalanceError',\n            44229,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Getting gift card balance failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceGetGiftCardBalanceFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetGiftCardBalanceFinished',\n            44230,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Getting gift card balance finished.'\n        );\n    }\n\n    public static checkoutServiceSubmitOrderStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceSubmitOrderStarted',\n            44232,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Submit order started.'\n        );\n    }\n\n    public static checkoutServiceSubmitOrderError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceSubmitOrderError',\n            44233,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Submit order failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceSubmitOrderFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceSubmitOrderFinished',\n            44234,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Submit order finished.'\n        );\n    }\n\n    public static checkoutServiceGetCardPaymentAcceptUrlStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetCardPaymentAcceptUrlStarted',\n            44235,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get card payment accept url started.'\n        );\n    }\n\n    public static checkoutServiceGetCardPaymentAcceptUrlFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetCardPaymentAcceptUrlFinished',\n            44236,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get card payment accept url finished.'\n        );\n    }\n\n    public static checkoutServiceGetCardPaymentAcceptUrlError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceGetCardPaymentAcceptUrlError',\n            44237,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get card payment accept url failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceRetrieveCardPaymentAcceptResultStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceRetrieveCardPaymentAcceptResultStarted',\n            44238,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Retrieve card payment accept result started.'\n        );\n    }\n\n    public static checkoutServiceRetrieveCardPaymentAcceptResultFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceRetrieveCardPaymentAcceptResultFinished',\n            44239,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Retrieve card payment accept result finished.'\n        );\n    }\n\n    public static checkoutServiceRetrieveCardPaymentAcceptResultError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceRetrieveCardPaymentAcceptResultError',\n            44240,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Retrieve card payment accept result failed with error {0}.'\n        );\n    }\n\n    public static checkoutServiceCleanUpAfterSuccessfulOrderStarted(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceCleanUpAfterSuccessfulOrderStarted',\n            44241,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Shopping cart clean failed post successful submit order started.'\n        );\n    }\n\n    public static checkoutServiceCleanUpAfterSuccessfulOrderError(error: string): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceCleanUpAfterSuccessfulOrderError',\n            44242,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Shopping cart clean failed post successful submit order with error {0}.'\n        );\n    }\n\n    public static checkoutServiceCleanUpAfterSuccessfulOrderFinished(): void {\n        LoggerBase.writeEvent(\n            'CheckoutServiceCleanUpAfterSuccessfulOrderFinished',\n            44243,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Shopping cart clean failed post successful submit order finished.'\n        );\n    }\n\n    // Channel Service - Event Range: 44300 - 44349.\n    public static channelServiceGetChannelConfigurationStarted(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetChannelConfigurationStarted',\n            44300,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get channel Configuration started.'\n        );\n    }\n\n    public static channelServiceGetChannelConfigurationError(error: string): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetChannelConfigurationError',\n            44301,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get channel Configuration failed with error {0}.'\n        );\n    }\n\n    public static channelServiceGetChannelConfigurationFinished(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetChannelConfigurationFinished',\n            44302,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get channel Configuration finished.'\n        );\n    }\n\n    public static channelServiceGetCountryRegionInfoStarted(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetCountryRegionInfoStarted',\n            44304,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get country region info started.'\n        );\n    }\n\n    public static channelServiceGetCountryRegionInfoError(error: string): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetCountryRegionInfoError',\n            44305,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get country region info failed with error {0}.'\n        );\n    }\n\n    public static channelServiceGetCountryRegionInfoFinished(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetCountryRegionInfoFinished',\n            44306,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get country region info finished.'\n        );\n    }\n\n    public static channelServiceGetStateProvinceInfoStarted(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetStateProvinceInfoStarted',\n            44308,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get state province info started.'\n        );\n    }\n\n    public static channelServiceGetStateProvinceInfoError(error: string): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetStateProvinceInfoError',\n            44309,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get state province info error {0}.'\n        );\n    }\n\n    public static channelServiceGetStateProvinceInfoFinished(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetStateProvinceInfoFinished',\n            44310,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get state province info finished.'\n        );\n    }\n\n    public static channelServiceGetTenderTypesStarted(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetTenderTypesStarted',\n            44312,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get tender types started.'\n        );\n    }\n\n    public static channelServiceGetTenderTypesError(error: string): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetTenderTypesError',\n            44313,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get tender types failed with error {0}.'\n        );\n    }\n\n    public static channelServiceGetTenderTypesFinished(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetTenderTypesFinished',\n            44314,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get tender types finished.'\n        );\n    }\n\n    public static channelServiceGetCardTypesStarted(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetCardTypesStarted',\n            44315,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get card types started.'\n        );\n    }\n\n    public static channelServiceGetCardTypesError(error: string): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetCardTypesError',\n            44316,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get card types failed with error {0}.'\n        );\n    }\n\n    public static channelServiceGetCardTypesFinished(): void {\n        LoggerBase.writeEvent(\n            'ChannelServiceGetCardTypesFinished',\n            44317,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get card types finished.'\n        );\n    }\n\n    // Item Availability Service - Event Range: 44350 - 44369.\n    public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted(): void {\n        LoggerBase.writeEvent(\n            'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted',\n            44350,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get nearby stores with availability started.'\n        );\n    }\n\n    public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityError(error: string): void {\n        LoggerBase.writeEvent(\n            'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityError',\n            44351,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get nearby stores with availability failed with error {0}.'\n        );\n    }\n\n    public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished(): void {\n        LoggerBase.writeEvent(\n            'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished',\n            44352,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get nearby stores with availability finished.'\n        );\n    }\n\n    public static storeProductAvailabilityServiceGetNearbyStoresStarted(): void {\n        LoggerBase.writeEvent(\n            'StoreProductAvailabilityServiceGetNearbyStoresStarted',\n            44354,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get nearby stores started.'\n        );\n    }\n\n    public static storeProductAvailabilityServiceGetNearbyStoresError(error: string): void {\n        LoggerBase.writeEvent(\n            'StoreProductAvailabilityServiceGetNearbyStoresError',\n            44355,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get nearby stores failed with error {0}.'\n        );\n    }\n\n    public static storeProductAvailabilityServiceGetNearbyStoresFinished(): void {\n        LoggerBase.writeEvent(\n            'StoreProductAvailabilityServiceGetNearbyStoresFinished',\n            44356,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get nearby stores finished.'\n        );\n    }\n\n    // Loyalty Service - Event Range: 44370 - 44399.\n    public static loyaltyServiceGetLoyaltyCardsStarted(): void {\n        LoggerBase.writeEvent(\n            'LoyaltyServiceGetLoyaltyCardsStarted',\n            44370,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get loyalty cards started.'\n        );\n    }\n\n    public static loyaltyServiceGetLoyaltyCardsError(error: string): void {\n        LoggerBase.writeEvent(\n            'LoyaltyServiceGetLoyaltyCardsError',\n            44371,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get loyalty cards failed with error {0}.'\n        );\n    }\n\n    public static loyaltyServiceGetLoyaltyCardsFinished(): void {\n        LoggerBase.writeEvent(\n            'LoyaltyServiceGetLoyaltyCardsFinished',\n            44372,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get loyalty cards finished.'\n        );\n    }\n\n    public static loyaltyServiceUpdateLoyaltyCardIdStarted(): void {\n        LoggerBase.writeEvent(\n            'loyaltyServiceUpdateLoyaltyCardIdStarted',\n            44374,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update loyalty card id started.'\n        );\n    }\n\n    public static loyaltyServiceUpdateLoyaltyCardIdError(error: string): void {\n        LoggerBase.writeEvent(\n            'LoyaltyServiceUpdateLoyaltyCardIdError',\n            44375,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Update loyalty card id failed with error {0}.'\n        );\n    }\n\n    public static loyaltyServiceUpdateLoyaltyCardIdFinished(): void {\n        LoggerBase.writeEvent(\n            'LoyaltyServiceUpdateLoyaltyCardIdFinished',\n            44376,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update loyalty card id finished.'\n        );\n    }\n\n    // Customer Service - Event Range: 44400 - 44499.\n    public static customerServiceGetCustomerStarted(): void {\n        LoggerBase.writeEvent(\n            'CustomerServiceGetCustomerStarted',\n            44400,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get customer started.'\n        );\n    }\n\n    public static customerServiceGetCustomerError(error: string): void {\n        LoggerBase.writeEvent(\n            'CustomerServiceGetCustomerError',\n            44401,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get customer failed with error {0}.'\n        );\n    }\n\n    public static customerServiceGetCustomerFinished(): void {\n        LoggerBase.writeEvent(\n            'CustomerServiceGetCustomerFinished',\n            44402,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get customer finished.'\n        );\n    }\n\n    public static customerServiceIsAuthenticationSessionStarted(): void {\n        LoggerBase.writeEvent(\n            'CustomerServiceIsAuthenticationSessionStarted',\n            44403,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Is authentication session started.'\n        );\n    }\n\n    public static customerServiceIsAuthenticationSessionError(error: string): void {\n        LoggerBase.writeEvent(\n            'CustomerServiceIsAuthenticationSessionError',\n            44404,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Is authentication session failed with error {0}.'\n        );\n    }\n\n    public static customerServiceIsAuthenticationSessionFinished(): void {\n        LoggerBase.writeEvent(\n            'CustomerServiceIsAuthenticationSessionFinished',\n            44405,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Is authentication session finished.'\n        );\n    }\n\n    // Order Service - Event Range: 44500 - 44599.\n    public static getOrderHistoryStarted(): void {\n        LoggerBase.writeEvent(\n            'GetOrderHistoryStarted',\n            44500,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get order history started.'\n        );\n    }\n\n    public static getOrderHistoryError(error: string): void {\n        LoggerBase.writeEvent(\n            'GetOrderHistoryError',\n            44501,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get order history failed with error {0}.'\n        );\n    }\n\n    public static getOrderHistoryFinished(): void {\n        LoggerBase.writeEvent(\n            'GetOrderHistoryFinished',\n            44502,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get order history finished.'\n        );\n    }\n\n    public static getOrderDetailsStarted(): void {\n        LoggerBase.writeEvent(\n            'GetOrderDetailsStarted',\n            44504,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get order details started.'\n        );\n    }\n\n    public static getOrderDetailsError(error: string): void {\n        LoggerBase.writeEvent(\n            'GetOrderDetailsError',\n            44505,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get order details failed with error {0}.'\n        );\n    }\n\n    public static getOrderDetailsFinished(): void {\n        LoggerBase.writeEvent(\n            'GetOrderDetailsFinished',\n            44506,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get order details finished.'\n        );\n    }\n\n    // Commerce list realtime service - Event Range: 44600 - 44699.\n    public static createWishListStarted(): void {\n        LoggerBase.writeEvent(\n            'CreateWishListStarted',\n            44600,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Create wish list started.'\n        );\n    }\n\n    public static createWishListError(error: string): void {\n        LoggerBase.writeEvent(\n            'CreateWishListError',\n            44601,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Create wish list failed with error {0}.'\n        );\n    }\n\n    public static createWishListFinished(): void {\n        LoggerBase.writeEvent(\n            'CreateWishListFinished',\n            44602,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Create wish list finished.'\n        );\n    }\n\n    public static deleteWishListStarted(): void {\n        LoggerBase.writeEvent(\n            'DeleteWishListStarted',\n            44604,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Delete wish list started.'\n        );\n    }\n\n    public static deleteWishListError(error: string): void {\n        LoggerBase.writeEvent(\n            'DeleteWishListError',\n            44605,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Delete wish list failed with error {0}.'\n        );\n    }\n\n    public static deleteWishListFinished(): void {\n        LoggerBase.writeEvent(\n            'DeleteWishListFinished',\n            44606,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Delete wish list finished.'\n        );\n    }\n\n    public static updateWishListStarted(): void {\n        LoggerBase.writeEvent(\n            'UpdateWishListStarted',\n            44608,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update wish list started.'\n        );\n    }\n\n    public static updateWishListError(error: string): void {\n        LoggerBase.writeEvent(\n            'UpdateWishListError',\n            44609,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Update wish list failed with error {0}.'\n        );\n    }\n\n    public static updateWishListFinished(): void {\n        LoggerBase.writeEvent(\n            'UpdateWishListFinished',\n            44610,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update wish list finished.'\n        );\n    }\n\n    public static getWishListsStarted(): void {\n        LoggerBase.writeEvent(\n            'GetWishListsStarted',\n            44612,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get wish lists started.'\n        );\n    }\n\n    public static getWishListsError(error: string): void {\n        LoggerBase.writeEvent(\n            'GetWishListsError',\n            44613,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get wish lists failed with error {0}.'\n        );\n    }\n\n    public static getWishListsFinished(): void {\n        LoggerBase.writeEvent(\n            'GetWishListsFinished',\n            44614,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get wish lists finished.'\n        );\n    }\n\n    public static getWishListStarted(): void {\n        LoggerBase.writeEvent(\n            'GetWishListStarted',\n            44616,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get wish list started.'\n        );\n    }\n\n    public static getWishListError(error: string): void {\n        LoggerBase.writeEvent(\n            'GetWishListError',\n            44617,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Get wish list failed with error {0}.'\n        );\n    }\n\n    public static getWishListFinished(): void {\n        LoggerBase.writeEvent(\n            'GetWishListFinished',\n            44618,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Get wish list finished.'\n        );\n    }\n\n    public static addLinesToWishListStarted(): void {\n        LoggerBase.writeEvent(\n            'AddLinesToWishListStarted',\n            44620,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Add lines to wish list started.'\n        );\n    }\n\n    public static addLinesToWishListError(error: string): void {\n        LoggerBase.writeEvent(\n            'AddLinesToWishListError',\n            44621,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Add lines to wish list failed with error {0}.'\n        );\n    }\n\n    public static addLinesToWishListFinished(): void {\n        LoggerBase.writeEvent(\n            'AddLinesToWishListFinished',\n            44622,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Add lines to wish list finished.'\n        );\n    }\n\n    public static removeItemsFromWishListStarted(): void {\n        LoggerBase.writeEvent(\n            'RemoveItemsFromWishListStarted',\n            44624,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Remove items from wish list started.'\n        );\n    }\n\n    public static removeItemsFromWishListError(error: string): void {\n        LoggerBase.writeEvent(\n            'RemoveItemsFromWishListError',\n            44625,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Remove items from wish list failed with error {0}.'\n        );\n    }\n\n    public static removeItemsFromWishListFinished(): void {\n        LoggerBase.writeEvent(\n            'RemoveItemsFromWishListFinished',\n            44626,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Remove items from wish list finished.'\n        );\n    }\n\n    public static updateLinesOnWishListStarted(): void {\n        LoggerBase.writeEvent(\n            'UpdateLinesOnWishListStarted',\n            44628,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update lines on wish list started.'\n        );\n    }\n\n    public static updateLinesOnWishListError(error: string): void {\n        LoggerBase.writeEvent(\n            'UpdateLinesOnWishListError',\n            44629,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Update lines on wish list failed with error {0}.'\n        );\n    }\n\n    public static updateLinesOnWishListFinished(): void {\n        LoggerBase.writeEvent(\n            'UpdateLinesOnWishListFinished',\n            44630,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Update lines on wish list finished.'\n        );\n    }\n\n    public static addItemsToCartStarted(): void {\n        LoggerBase.writeEvent(\n            'AddItemsToCartStarted',\n            44632,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Add items to cart started.'\n        );\n    }\n\n    public static addItemsToCartError(error: string): void {\n        LoggerBase.writeEvent(\n            'AddItemsToCartError',\n            44633,\n            1,\n            EventChannel.Operational,\n            EventLevel.Error,\n            [],\n            '',\n            '',\n            'Add items to cart failed with error {0}.'\n        );\n    }\n\n    public static addItemsToCartFinished(): void {\n        LoggerBase.writeEvent(\n            'AddItemsToCartFinished',\n            44634,\n            1,\n            EventChannel.Debug,\n            EventLevel.Informational,\n            [],\n            '',\n            '',\n            'Add items to cart finished.'\n        );\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProxyError } from '../exceptions';\nimport { EMPTY, format } from '../extensions/StringExtensions';\nimport { DebuggingConsoleSink } from './ConsoleEventWriter';\nimport { attachLoggingSink, genericError, genericInfo, genericWarning } from './RetailLogger';\n\n/**\n * The tracer class allows information to be logged on the device for Information, Warning or Error\n * The same method call can be used for each type\n * Example:\n *         Commerce.Proxy.Tracer.Information(\"Message {0} {1}\", [\"Arg1\", \"Arg2\"]);     // With parameters to be formatted\n *         Commerce.Proxy.Tracer.Information(\"Message\");                               // Without parameters\n *\n * Example of different tracer logs\n *   Dynamics-Information: <<Formatted message>> <<number of milliseconds since 1970/01/01>>\n *   Dynamics-Warning: <<Formatted message>> <<number of milliseconds since 1970/01/01>>\n *   Dynamics-Error: <<Formatted message>> <<number of milliseconds since 1970/01/01>>\n */\n\nexport class Tracer {\n    private static TracerDynamics: string = 'Dynamics-';\n    private static TracerDynamicsError: string = 'Error: ';\n\n    private static TracingOn: boolean = true;\n\n    private static Counters: any[] = new Array();\n    private static Timers: any[] = new Array();\n\n    public static init(): boolean {\n        attachLoggingSink(new DebuggingConsoleSink());\n        return true;\n    }\n\n    public static _initialized: boolean = Tracer.init();\n\n    /**\n     * Traces an informational message in the specified format.\n     */\n    public static Information(informationformat: string, ...args: any[]): void {\n        if (Tracer.TracingOn) {\n            genericInfo(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, informationformat, ...args]));\n        }\n    }\n\n    /**\n     * Traces a warning message in the specified format.\n     */\n    public static Warning(warningFormat: string, ...args: any[]): void {\n        if (Tracer.TracingOn) {\n            genericWarning(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, warningFormat, ...args]));\n        }\n    }\n\n    /**\n     * Traces an error message in the specified format.\n     */\n    public static Error(errorFormat: string, ...args: any[]): void {\n        if (Tracer.TracingOn) {\n            genericError(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, errorFormat, ...args]));\n        }\n    }\n\n    /**\n     * Traces an error message in the specified format.\n     */\n    public static Errors(errors: ProxyError[], formatString: string, ...args: any[]): void {\n        if (Tracer.TracingOn && errors !== null && errors.length > 0) {\n            let errorMessage: string = '';\n            let errorCode: string = '';\n            let errorString: string = '';\n\n            errors.forEach(error => {\n                errorMessage = error.ErrorMessage || EMPTY;\n                errorCode = error.ErrorCode || EMPTY;\n                errorString = JSON.stringify(error);\n                Tracer.Error(\n                    formatString +\n                        ' ' +\n                        format(\" \\n ErrorMessage: {0}; \\n ErrorCode: {1}; \\n ErrorObject: '{2}'\", errorMessage, errorCode, errorString),\n                    args\n                );\n            });\n        }\n    }\n\n    public static StartCounter(uniqueFunctionName: string): void {\n        let counter;\n        if (Tracer.Counters[uniqueFunctionName] === undefined) {\n            counter = new PerformanceCounters();\n            counter.Name = uniqueFunctionName;\n        } else {\n            counter = Tracer.Counters[uniqueFunctionName];\n        }\n        counter.Count += 1;\n        Tracer.Counters[uniqueFunctionName] = counter;\n        const now = new Date().getTime();\n        Tracer.Timers.push(now);\n    }\n\n    public static EndCounter(uniqueFunctionName: string): void {\n        const now = new Date().getTime();\n        const startTime = Tracer.Timers.pop();\n        const counter = Tracer.Counters[uniqueFunctionName];\n        counter.TotalTime += now - startTime;\n    }\n\n    public static DumpCounters() {\n        for (const item in Tracer.Counters) {\n            if (Tracer.Counters.hasOwnProperty(item)) {\n                Tracer.Information(\n                    'Method = {0} Number of calls = {1} TotalTime = {2}mS Avg = {3}mS',\n                    Tracer.Counters[item].Name,\n                    Tracer.Counters[item].Count,\n                    Tracer.Counters[item].TotalTime,\n                    Tracer.Counters[item].TotalTime / Tracer.Counters[item].Count\n                );\n            }\n        }\n    }\n\n    private static GetMessage(type: string, formatString: string, ...args: any[]) {\n        const now = '' + new Date().getTime() + 'mS';\n        if (Tracer.TracingOn) {\n            if (!args) {\n                return Tracer.TracerDynamics + type + '\\t' + formatString + '\\t' + now;\n            } else {\n                return (\n                    Tracer.TracerDynamics + type + '\\t' + format.apply(null, [formatString, Array.prototype.slice.call(args)]) + '\\t' + now\n                );\n            }\n        }\n    }\n}\n\nclass PerformanceCounters {\n    public Name: string;\n    public Count: number = 0;\n    public TotalTime: number = 0;\n}\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = globalThis.parseFloat;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n  // MS Edge 18- broken with boxed symbols\n  || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n  var trimmedString = trim(toString(string));\n  var result = $parseFloat(trimmedString);\n  return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;\n} : $parseFloat;\n","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { SalesOrder, SalesOrderSearchCriteria, OrderSearchCriteria, FulfillmentLineSearchCriteria, FulfillmentLine, ReceiptRetrievalCriteria, Receipt, SearchReceiptCriteria, ElectronicAddress, ChannelReferenceLookupCriteria, OrderOriginatorSearchCriteria, OrderOriginator, SalesOrdersLookupCriteria, ShipFulfillmentLine, FulfillmentLineParameter, RejectFulfillmentLine, SalesInvoice, OrderInvoice, InvoiceSearchCriteria, InvoiceDetailsSearchCriteria, SalesLine, InvoicedSalesLinesSearchCriteria, PickAndPackSalesLineParameter, PickingList, FulfillmentLineUserAlerts, CommerceProperty, CheckInForOrderPickupConfirmation, SalesOrderConfirmedShipDateChange, OrderCancellationResult, PackingSlipData } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function salesOrdersQuery(id?: string): DataServiceQuery {\n        var key = (id) ? { Id: id } : null;\n        return new DataServiceQuery(\"SalesOrders\", \"SalesOrder\", \"SalesOrderClass\", key);\n    }\n    \n    export function createCreateInput(entity: SalesOrder): IDataServiceRequest {\n        return salesOrdersQuery().create(entity);\n    }\n\n    export function createSalesOrderAsync(context: IContext, entity: SalesOrder): AsyncResult<SalesOrder> {\n        const request = createCreateInput(entity);\n        return executeAction<SalesOrder>(request, context);\n    }\n\n    export function createUpdateInput(entity: SalesOrder): IDataServiceRequest {\n        return salesOrdersQuery(entity.Id).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: SalesOrder): AsyncResult<SalesOrder> {\n        const request = createUpdateInput(entity);\n        return executeAction<SalesOrder>(request, context);\n    }\n\n    export function createDeleteAsync(entity: SalesOrder): IDataServiceRequest {\n        return salesOrdersQuery(entity.Id).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: SalesOrder): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(id: string): IDataServiceRequest {\n        return salesOrdersQuery(id).read();\n    }\n\n    export function readAsync(context: IContext, id: string): AsyncResult<SalesOrder> {\n        const request = createReadAsync(id);\n        return executeAction<SalesOrder>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return salesOrdersQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<SalesOrder[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<SalesOrder[]>(request, context);\n    }\n    \n    export function createSearchInput(queryResultSettings: IQueryResultSettings, salesOrderSearchCriteria?: SalesOrderSearchCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('Search', true, \n             'SalesOrderClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesOrderSearchCriteria: salesOrderSearchCriteria });\n    }    \n    \n    export function searchAsync(context: IContext, salesOrderSearchCriteria?: SalesOrderSearchCriteria | null):AsyncResult<SalesOrder[]> {\n        const request = createSearchInput(context.queryResultSettings, salesOrderSearchCriteria);\n        return executeAction<SalesOrder[]>(request, context);\n    }          \n          \n    export function createSearchSalesTransactionsByReceiptIdInput(queryResultSettings: IQueryResultSettings, receiptId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchSalesTransactionsByReceiptId', true, \n             'SalesOrderClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {receiptId: receiptId });\n    }    \n    \n    export function searchSalesTransactionsByReceiptIdAsync(context: IContext, receiptId?: string | null):AsyncResult<SalesOrder[]> {\n        const request = createSearchSalesTransactionsByReceiptIdInput(context.queryResultSettings, receiptId);\n        return executeAction<SalesOrder[]>(request, context);\n    }          \n          \n    export function createSearchOrdersInput(queryResultSettings: IQueryResultSettings, orderSearchCriteria?: OrderSearchCriteria | null, nextPageToken?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchOrders', true, \n             'SalesOrderClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {orderSearchCriteria: orderSearchCriteria, nextPageToken: nextPageToken });\n    }    \n    \n    export function searchOrdersAsync(context: IContext, orderSearchCriteria?: OrderSearchCriteria | null, nextPageToken?: string | null):AsyncResult<SalesOrder[]> {\n        const request = createSearchOrdersInput(context.queryResultSettings, orderSearchCriteria, nextPageToken);\n        return executeAction<SalesOrder[]>(request, context);\n    }          \n          \n    export function createGetFulfillmentLinesInput(queryResultSettings: IQueryResultSettings, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFulfillmentLines', true, \n             'FulfillmentLineClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLine'}, {fulfillmentLineSearchCriteria: fulfillmentLineSearchCriteria });\n    }    \n    \n    export function getFulfillmentLinesAsync(context: IContext, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null):AsyncResult<FulfillmentLine[]> {\n        const request = createGetFulfillmentLinesInput(context.queryResultSettings, fulfillmentLineSearchCriteria);\n        return executeAction<FulfillmentLine[]>(request, context);\n    }          \n          \n    export function createGetReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, receiptRetrievalCriteria: ReceiptRetrievalCriteria | null, customerOrderType?: number): IDataServiceRequest {      \n        const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetReceipts', true, \n             'ReceiptClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {receiptRetrievalCriteria: receiptRetrievalCriteria, customerOrderType: customerOrderType });\n    }    \n    \n    export function getReceiptsAsync(context: IContext, id: string, receiptRetrievalCriteria: ReceiptRetrievalCriteria | null, customerOrderType?: number):AsyncResult<Receipt[]> {\n        const request = createGetReceiptsInput(context.queryResultSettings, id, receiptRetrievalCriteria, customerOrderType);\n        return executeAction<Receipt[]>(request, context);\n    }          \n          \n    export function createSendReceiptInput(searchCriteria?: SearchReceiptCriteria | null, recipientAddresses?: ElectronicAddress[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('SendReceipt', true, '', '', {bypassCache: 'get', returnEntity: ''}, {searchCriteria: searchCriteria, recipientAddresses: recipientAddresses });\n    }    \n    \n    export function sendReceiptAsync(context: IContext, searchCriteria?: SearchReceiptCriteria | null, recipientAddresses?: ElectronicAddress[] | null):AsyncResult<NullResult> {\n        const request = createSendReceiptInput(searchCriteria, recipientAddresses);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createGetGiftReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, salesLineNumbers: number[], receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetGiftReceipts', true, \n             'ReceiptClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {SalesLineNumbers: salesLineNumbers, receiptRetrievalCriteria: receiptRetrievalCriteria });\n    }    \n    \n    export function getGiftReceiptsAsync(context: IContext, id: string, salesLineNumbers: number[], receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult<Receipt[]> {\n        const request = createGetGiftReceiptsInput(context.queryResultSettings, id, salesLineNumbers, receiptRetrievalCriteria);\n        return executeAction<Receipt[]>(request, context);\n    }          \n          \n    export function createGetByReceiptIdInput(queryResultSettings: IQueryResultSettings, receiptId?: string | null, orderStoreNumber?: string | null, orderTerminalId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetByReceiptId', true, \n             'SalesOrderClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {receiptId: receiptId, orderStoreNumber: orderStoreNumber, orderTerminalId: orderTerminalId });\n    }    \n    \n    export function getByReceiptIdAsync(context: IContext, receiptId?: string | null, orderStoreNumber?: string | null, orderTerminalId?: string | null):AsyncResult<SalesOrder[]> {\n        const request = createGetByReceiptIdInput(context.queryResultSettings, receiptId, orderStoreNumber, orderTerminalId);\n        return executeAction<SalesOrder[]>(request, context);\n    }          \n          \n    export function createGetSalesOrderDetailsByTransactionIdInput(transactionId: string | null, searchLocationValue: number): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('GetSalesOrderDetailsByTransactionId', false, \n             'SalesOrderClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {transactionId: transactionId, searchLocationValue: searchLocationValue });\n    }    \n    \n    export function getSalesOrderDetailsByTransactionIdAsync(context: IContext, transactionId: string | null, searchLocationValue: number):AsyncResult<SalesOrder> {\n        const request = createGetSalesOrderDetailsByTransactionIdInput(transactionId, searchLocationValue);\n        return executeAction<SalesOrder>(request, context);\n    }          \n          \n    export function createGetSalesOrderDetailsBySalesIdInput(salesId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('GetSalesOrderDetailsBySalesId', false, \n             'SalesOrderClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesId: salesId });\n    }    \n    \n    export function getSalesOrderDetailsBySalesIdAsync(context: IContext, salesId?: string | null):AsyncResult<SalesOrder> {\n        const request = createGetSalesOrderDetailsBySalesIdInput(salesId);\n        return executeAction<SalesOrder>(request, context);\n    }          \n          \n    export function createGetOrderByChannelReferenceLookupCriteriaInput(channelReferenceLookupCriteria?: ChannelReferenceLookupCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('GetOrderByChannelReferenceLookupCriteria', true, \n             'SalesOrderClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {channelReferenceLookupCriteria: channelReferenceLookupCriteria });\n    }    \n    \n    export function getOrderByChannelReferenceLookupCriteriaAsync(context: IContext, channelReferenceLookupCriteria?: ChannelReferenceLookupCriteria | null):AsyncResult<SalesOrder> {\n        const request = createGetOrderByChannelReferenceLookupCriteriaInput(channelReferenceLookupCriteria);\n        return executeAction<SalesOrder>(request, context);\n    }          \n          \n    export function createGetSalesOrderDetailsByQuotationIdInput(quotationId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('GetSalesOrderDetailsByQuotationId', false, \n             'SalesOrderClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {quotationId: quotationId });\n    }    \n    \n    export function getSalesOrderDetailsByQuotationIdAsync(context: IContext, quotationId?: string | null):AsyncResult<SalesOrder> {\n        const request = createGetSalesOrderDetailsByQuotationIdInput(quotationId);\n        return executeAction<SalesOrder>(request, context);\n    }          \n          \n    export function createGetOrderOriginatorsInput(queryResultSettings: IQueryResultSettings, orderOriginatorSearchCriteria?: OrderOriginatorSearchCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOrderOriginators', true, \n             'OrderOriginatorClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrderOriginator'}, {orderOriginatorSearchCriteria: orderOriginatorSearchCriteria });\n    }    \n    \n    export function getOrderOriginatorsAsync(context: IContext, orderOriginatorSearchCriteria?: OrderOriginatorSearchCriteria | null):AsyncResult<OrderOriginator[]> {\n        const request = createGetOrderOriginatorsInput(context.queryResultSettings, orderOriginatorSearchCriteria);\n        return executeAction<OrderOriginator[]>(request, context);\n    }          \n          \n    export function createGetSalesOrdersByLookupCriteriaInput(queryResultSettings: IQueryResultSettings, salesOrdersLookupCriteria?: SalesOrdersLookupCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetSalesOrdersByLookupCriteria', true, \n             'SalesOrderClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesOrdersLookupCriteria: salesOrdersLookupCriteria });\n    }    \n    \n    export function getSalesOrdersByLookupCriteriaAsync(context: IContext, salesOrdersLookupCriteria?: SalesOrdersLookupCriteria | null):AsyncResult<SalesOrder[]> {\n        const request = createGetSalesOrdersByLookupCriteriaInput(context.queryResultSettings, salesOrdersLookupCriteria);\n        return executeAction<SalesOrder[]>(request, context);\n    }          \n          \n    export function createShipFulfillmentLinesInput(shipFulfillmentLines?: ShipFulfillmentLine[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('ShipFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {ShipFulfillmentLines: shipFulfillmentLines });\n    }    \n    \n    export function shipFulfillmentLinesAsync(context: IContext, shipFulfillmentLines?: ShipFulfillmentLine[] | null):AsyncResult<NullResult> {\n        const request = createShipFulfillmentLinesInput(shipFulfillmentLines);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createAcceptFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('AcceptFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n    }    \n    \n    export function acceptFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult<NullResult> {\n        const request = createAcceptFulfillmentLinesInput(fulfillmentLineParameter);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createPickFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('PickFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n    }    \n    \n    export function pickFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult<NullResult> {\n        const request = createPickFulfillmentLinesInput(fulfillmentLineParameter);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createPackFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('PackFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n    }    \n    \n    export function packFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult<NullResult> {\n        const request = createPackFulfillmentLinesInput(fulfillmentLineParameter);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createMarkFulfillmentLinesAsPackedInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('MarkFulfillmentLinesAsPacked', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n    }    \n    \n    export function markFulfillmentLinesAsPackedAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult<string> {\n        const request = createMarkFulfillmentLinesAsPackedInput(fulfillmentLineParameter);\n        return executeAction<string>(request, context);\n    }          \n          \n    export function createMarkAsPickedInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('MarkAsPicked', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n    }    \n    \n    export function markAsPickedAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult<NullResult> {\n        const request = createMarkAsPickedInput(fulfillmentLineParameter);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createGetFulfillmentPickingListsInput(queryResultSettings: IQueryResultSettings, pickingListFulfillmentLine?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFulfillmentPickingLists', true, \n             'ReceiptClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {pickingListFulfillmentLine: pickingListFulfillmentLine, hardwareProfileId: hardwareProfileId });\n    }    \n    \n    export function getFulfillmentPickingListsAsync(context: IContext, pickingListFulfillmentLine?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null):AsyncResult<Receipt[]> {\n        const request = createGetFulfillmentPickingListsInput(context.queryResultSettings, pickingListFulfillmentLine, hardwareProfileId);\n        return executeAction<Receipt[]>(request, context);\n    }          \n          \n    export function createGetFulfillmentPackingSlipsInput(queryResultSettings: IQueryResultSettings, packFulfillmentLines?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFulfillmentPackingSlips', true, \n             'ReceiptClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {packFulfillmentLines: packFulfillmentLines, hardwareProfileId: hardwareProfileId });\n    }    \n    \n    export function getFulfillmentPackingSlipsAsync(context: IContext, packFulfillmentLines?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null):AsyncResult<Receipt[]> {\n        const request = createGetFulfillmentPackingSlipsInput(context.queryResultSettings, packFulfillmentLines, hardwareProfileId);\n        return executeAction<Receipt[]>(request, context);\n    }          \n          \n    export function createGetFulfillmentPackingSlipsByIdInput(queryResultSettings: IQueryResultSettings, salesId?: string | null, packingSlipId?: string | null, hardwareProfileId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFulfillmentPackingSlipsById', true, \n             'ReceiptClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {salesId: salesId, PackingSlipId: packingSlipId, hardwareProfileId: hardwareProfileId });\n    }    \n    \n    export function getFulfillmentPackingSlipsByIdAsync(context: IContext, salesId?: string | null, packingSlipId?: string | null, hardwareProfileId?: string | null):AsyncResult<Receipt[]> {\n        const request = createGetFulfillmentPackingSlipsByIdInput(context.queryResultSettings, salesId, packingSlipId, hardwareProfileId);\n        return executeAction<Receipt[]>(request, context);\n    }          \n          \n    export function createRejectFulfillmentLinesInput(rejectFulfillmentLines?: RejectFulfillmentLine[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('RejectFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {RejectFulfillmentLines: rejectFulfillmentLines });\n    }    \n    \n    export function rejectFulfillmentLinesAsync(context: IContext, rejectFulfillmentLines?: RejectFulfillmentLine[] | null):AsyncResult<NullResult> {\n        const request = createRejectFulfillmentLinesInput(rejectFulfillmentLines);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createGetInvoicesBySalesIdInput(queryResultSettings: IQueryResultSettings, salesId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetInvoicesBySalesId', true, \n             'SalesInvoiceClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesInvoice'}, {salesId: salesId });\n    }    \n    \n    export function getInvoicesBySalesIdAsync(context: IContext, salesId?: string | null):AsyncResult<SalesInvoice[]> {\n        const request = createGetInvoicesBySalesIdInput(context.queryResultSettings, salesId);\n        return executeAction<SalesInvoice[]>(request, context);\n    }          \n          \n    export function createGetOrderInvoicesInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetOrderInvoices', true, \n             'OrderInvoiceClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrderInvoice'}, {customerId: customerId });\n    }    \n    \n    export function getOrderInvoicesAsync(context: IContext, customerId?: string | null):AsyncResult<OrderInvoice[]> {\n        const request = createGetOrderInvoicesInput(context.queryResultSettings, customerId);\n        return executeAction<OrderInvoice[]>(request, context);\n    }          \n          \n    export function createGetInvoicesInput(queryResultSettings: IQueryResultSettings, invoiceSearchCriteria?: InvoiceSearchCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetInvoices', true, \n             'OrderInvoiceClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'OrderInvoice'}, {invoiceSearchCriteria: invoiceSearchCriteria });\n    }    \n    \n    export function getInvoicesAsync(context: IContext, invoiceSearchCriteria?: InvoiceSearchCriteria | null):AsyncResult<OrderInvoice[]> {\n        const request = createGetInvoicesInput(context.queryResultSettings, invoiceSearchCriteria);\n        return executeAction<OrderInvoice[]>(request, context);\n    }          \n          \n    export function createGetInvoiceDetailsInput(invoiceDetailsSearchCriteria?: InvoiceDetailsSearchCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('GetInvoiceDetails', true, \n             'SalesInvoiceClass'\n          , 'false', {bypassCache: 'none', returnEntity: 'SalesInvoice'}, {invoiceDetailsSearchCriteria: invoiceDetailsSearchCriteria });\n    }    \n    \n    export function getInvoiceDetailsAsync(context: IContext, invoiceDetailsSearchCriteria?: InvoiceDetailsSearchCriteria | null):AsyncResult<SalesInvoice> {\n        const request = createGetInvoiceDetailsInput(invoiceDetailsSearchCriteria);\n        return executeAction<SalesInvoice>(request, context);\n    }          \n          \n    export function createGetInvoicedSalesLinesBySalesIdsInput(queryResultSettings: IQueryResultSettings, salesIds?: string[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetInvoicedSalesLinesBySalesIds', true, \n             'SalesLineClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesLine'}, {salesIds: salesIds });\n    }    \n    \n    export function getInvoicedSalesLinesBySalesIdsAsync(context: IContext, salesIds?: string[] | null):AsyncResult<SalesLine[]> {\n        const request = createGetInvoicedSalesLinesBySalesIdsInput(context.queryResultSettings, salesIds);\n        return executeAction<SalesLine[]>(request, context);\n    }          \n          \n    export function createSearchInvoicedSalesLinesInput(queryResultSettings: IQueryResultSettings, invoicedSalesLinesSearchCriteria?: InvoicedSalesLinesSearchCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('SearchInvoicedSalesLines', true, \n             'SalesLineClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'SalesLine'}, {invoicedSalesLinesSearchCriteria: invoicedSalesLinesSearchCriteria });\n    }    \n    \n    export function searchInvoicedSalesLinesAsync(context: IContext, invoicedSalesLinesSearchCriteria?: InvoicedSalesLinesSearchCriteria | null):AsyncResult<SalesLine[]> {\n        const request = createSearchInvoicedSalesLinesInput(context.queryResultSettings, invoicedSalesLinesSearchCriteria);\n        return executeAction<SalesLine[]>(request, context);\n    }          \n          \n    export function createCreatePickingListInput(salesId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('CreatePickingList', true, '', '', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId });\n    }    \n    \n    export function createPickingListAsync(context: IContext, salesId?: string | null):AsyncResult<NullResult> {\n        const request = createCreatePickingListInput(salesId);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createCreatePickingListForItemsInput(salesId?: string | null, pickAndPackSalesLineParameters?: PickAndPackSalesLineParameter[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('CreatePickingListForItems', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId, pickAndPackSalesLineParameters: pickAndPackSalesLineParameters });\n    }    \n    \n    export function createPickingListForItemsAsync(context: IContext, salesId?: string | null, pickAndPackSalesLineParameters?: PickAndPackSalesLineParameter[] | null):AsyncResult<string> {\n        const request = createCreatePickingListForItemsInput(salesId, pickAndPackSalesLineParameters);\n        return executeAction<string>(request, context);\n    }          \n          \n    export function createGetPickingListsInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest {      \n        const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetPickingLists', false, \n             'PickingListClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'PickingList'}, { });\n    }    \n    \n    export function getPickingListsAsync(context: IContext, id: string):AsyncResult<PickingList[]> {\n        const request = createGetPickingListsInput(context.queryResultSettings, id);\n        return executeAction<PickingList[]>(request, context);\n    }          \n          \n    export function createCreatePackingSlipInput(salesId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('CreatePackingSlip', true, '', '', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId });\n    }    \n    \n    export function createPackingSlipAsync(context: IContext, salesId?: string | null):AsyncResult<NullResult> {\n        const request = createCreatePackingSlipInput(salesId);\n        return executeAction<NullResult>(request, context);\n    }          \n          \n    export function createGetFulfillmentLineUserAlertsInput(queryResultSettings: IQueryResultSettings, fulfillmentLineParameter: FulfillmentLineParameter[] | null, fulfillmentOperation: number): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetFulfillmentLineUserAlerts', true, \n             'FulfillmentLineUserAlertsClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLineUserAlerts'}, {FulfillmentLineParameter: fulfillmentLineParameter, FulfillmentOperation: fulfillmentOperation });\n    }    \n    \n    export function getFulfillmentLineUserAlertsAsync(context: IContext, fulfillmentLineParameter: FulfillmentLineParameter[] | null, fulfillmentOperation: number):AsyncResult<FulfillmentLineUserAlerts[]> {\n        const request = createGetFulfillmentLineUserAlertsInput(context.queryResultSettings, fulfillmentLineParameter, fulfillmentOperation);\n        return executeAction<FulfillmentLineUserAlerts[]>(request, context);\n    }          \n          \n    export function createCheckInForOrderPickupInput(channelId: number, packingSlipId?: string | null, channelReferenceId?: string | null, extensionProperties?: CommerceProperty[] | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('CheckInForOrderPickup', true, \n             'CheckInForOrderPickupConfirmationClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'CheckInForOrderPickupConfirmation'}, {channelId: channelId, PackingSlipId: packingSlipId, channelReferenceId: channelReferenceId, extensionProperties: extensionProperties });\n    }    \n    \n    export function checkInForOrderPickupAsync(context: IContext, channelId: number, packingSlipId?: string | null, channelReferenceId?: string | null, extensionProperties?: CommerceProperty[] | null):AsyncResult<CheckInForOrderPickupConfirmation> {\n        const request = createCheckInForOrderPickupInput(channelId, packingSlipId, channelReferenceId, extensionProperties);\n        return executeAction<CheckInForOrderPickupConfirmation>(request, context);\n    }          \n          \n    export function createUpdateConfirmedShipDateInput(confirmedShipDateChange?: SalesOrderConfirmedShipDateChange | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('UpdateConfirmedShipDate', true, \n             'SalesOrderClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {confirmedShipDateChange: confirmedShipDateChange });\n    }    \n    \n    export function updateConfirmedShipDateAsync(context: IContext, confirmedShipDateChange?: SalesOrderConfirmedShipDateChange | null):AsyncResult<SalesOrder> {\n        const request = createUpdateConfirmedShipDateInput(confirmedShipDateChange);\n        return executeAction<SalesOrder>(request, context);\n    }          \n          \n    export function createRequestCancellationInput(salesOrdersLookupCriteria?: SalesOrdersLookupCriteria | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('RequestCancellation', true, \n             'OrderCancellationResultClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'OrderCancellationResult'}, {salesOrdersLookupCriteria: salesOrdersLookupCriteria });\n    }    \n    \n    export function requestCancellationAsync(context: IContext, salesOrdersLookupCriteria?: SalesOrdersLookupCriteria | null):AsyncResult<OrderCancellationResult> {\n        const request = createRequestCancellationInput(salesOrdersLookupCriteria);\n        return executeAction<OrderCancellationResult>(request, context);\n    }          \n          \n    export function createConfirmInput(salesId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery();\n        return query.createDataServiceRequestForOperation('Confirm', true, \n             'SalesOrderClass'\n          , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {salesId: salesId });\n    }    \n    \n    export function confirmAsync(context: IContext, salesId?: string | null):AsyncResult<SalesOrder> {\n        const request = createConfirmInput(salesId);\n        return executeAction<SalesOrder>(request, context);\n    }          \n          \n    export function createGetPackingSlipsDataInput(queryResultSettings: IQueryResultSettings, salesId?: string | null): IDataServiceRequest {      \n        const query = salesOrdersQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetPackingSlipsData', false, \n             'PackingSlipDataClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'PackingSlipData'}, {salesId: salesId });\n    }    \n    \n    export function getPackingSlipsDataAsync(context: IContext, salesId?: string | null):AsyncResult<PackingSlipData[]> {\n        const request = createGetPackingSlipsDataInput(context.queryResultSettings, salesId);\n        return executeAction<PackingSlipData[]>(request, context);\n    }          \n          \n    ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core-internal';\n\nexport enum ICacheSource {\n    RequestCache,\n    AppCache\n}\n\nexport interface ICacheKey {\n    key: string;\n    typeName: string;\n}\n\nexport interface ICacheItem<T> {\n    item: T;\n    shouldRefresh?: boolean;\n    error?: boolean;\n    instance?: string;\n    // property to indicate the source whether it is app/request\n    s?: ICacheSource;\n    /**\n     * Flag to track the when the item start refreshing.\n     */\n    refreshStartTimeInMS?: number;\n    lastRefreshTime?: Date;\n}\n\nexport interface ICompressCache<T> {\n    data: T;\n    isCompressed: boolean;\n}\n\nexport interface ICacheItemOptions {\n    ttr?: number;\n    ttl?: number;\n    cacheKeySuffix?: string;\n}\nexport interface ICacheStats {\n    keys?: number;\n    hits?: number;\n    misses?: number;\n    totalKeySize?: number;\n    totalValueSize?: number;\n    valueSizePerKey?: object;\n}\n\n/**\n * Interface exposing methods for caching\n */\nexport interface ICache {\n    /**\n     * @function        {put}                 - Method to insert an item in the cache\n     * @param cacheKey  {ICacheKey}           - object to build the cache key\n     * @param cacheItem {ICacheItem}          - item that needs to be inserted in the cache\n     * @param options  {ICacheItemOptions}    - Optional cache item options\n     */\n    put<T = unknown>(cacheKey: ICacheKey, item: ICacheItem<T>, options?: ICacheItemOptions): boolean;\n\n    /**\n     * @function        {get}           - Method to get the cached item\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @return          {ICacheItem}    - cached value against the given cache key\n     */\n    get<T = unknown>(cacheKey: ICacheKey): ICacheItem<T> | undefined;\n\n    /**\n     * @function        {getValue}      - Method to get the cached item\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @return          {T}             - cached value against the given cache key\n     */\n    getValue<T = unknown>(cacheKey: ICacheKey): T | undefined;\n\n    /**\n     * @function        {getAllItems}   - Method to get all cached items for a given type\n     * @param typeName  {typeName}      - typeName for which all items need to be fetched\n     * @return          {ICacheItem}    - dictionary of cache items of the given typeName\n     */\n    getAllItems<T = unknown>(typeName: string): IDictionary<ICacheItem<T>> | undefined;\n\n    /**\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @param toCache   {ICache}        - cache object to which the item needs to be copied\n     * @return          {ICacheItem}    - cache item that was copied\n     */\n    copyTo<T = unknown>(cacheKey: ICacheKey, toCache: ICache, isObservable?: boolean): ICacheItem<T> | undefined;\n\n    /**\n     * @function    {del}               - Method to delete an item from the cache\n     * @param key   {ICacheKey[]}       - Array of ICacheGetData items whose values need to be deleted from cache\n     * @return      {number}            - returns true if the cache key is deleted successfully. Does not throw errors.\n     */\n    del(cacheKey: ICacheKey): boolean;\n\n    /**\n     * @function    {flushAll}          - Method to flush all data from the cache\n     */\n    flushAll(): void;\n\n    /**\n     * @function    {getStats}          - Returns statstics about the cache (number of keys, value size in bytes, etc)\n     */\n    getStats?(): ICacheStats;\n\n    /**\n     * @function    {flushStats}         - Flush the stats\n     */\n    flushStats?(): void;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICacheKey } from './ICache';\n\nexport const MODULE_CSS_CACHE_KEY = 'MODULE-CSS-CHUNKS';\nexport const MODULE_CSS_CACHE_TYPENAME = '__MODULECSSCHUNKS__';\n\nexport const normalizeCacheKey = (cacheKey: ICacheKey): ICacheKey => {\n    return {\n        typeName: cacheKey.typeName.toUpperCase(),\n        key: cacheKey.key.toUpperCase()\n    };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core-internal';\nimport { isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { observable, set, transaction } from 'mobx';\nimport { normalizeCacheKey } from './cache-utils';\nimport { ICache, ICacheItem, ICacheKey, ICacheSource } from './ICache';\n\n/**\n * Client cache implementation\n */\nexport class RequestCache implements ICache {\n    private internalCache: { [typeName: string]: IDictionary<ICacheItem<unknown>> } = {};\n\n    /**\n     * @function        {put}           - Method to insert an item in the cache\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @param cacheItem {ICacheItem}    - item that needs to be inserted in the cache\n     */\n    public put<T = unknown>(cacheKey: ICacheKey, item: ICacheItem<T>): boolean {\n        if (!cacheKey.typeName) {\n            throw new Error(`Invalid type (${cacheKey.typeName} specified)`);\n        }\n\n        if (!cacheKey.key) {\n            throw new Error(`Invalid key (${cacheKey.key} specified) for typeName: ${cacheKey.typeName}`);\n        }\n\n        item.s = item.s !== undefined ? item.s : ICacheSource.RequestCache;\n        const { typeName, key } = normalizeCacheKey(cacheKey);\n        if (this.internalCache[typeName] === undefined) {\n            this.internalCache[typeName] = {};\n        }\n        return transaction<boolean>(() => {\n            let cacheItem: ICacheItem<T> = <ICacheItem<T>>this.internalCache[typeName][key];\n\n            // For updating AsyncResults, only update result\n            if (cacheItem && isAsyncResult(cacheItem.item)) {\n                if (cacheItem.item.status !== 'LOADING') {\n                    set(cacheItem.item, 'status', 'LOADING');\n                }\n                set(cacheItem.item, 'result', item.item);\n                // Auto resolve promises whos result is being set, as they are essentially being force-completed\n                set(cacheItem.item, 'status', 'SUCCESS');\n            } else if (cacheItem) {\n                set(cacheItem, 'item', item.item);\n            } else {\n                if (!isAsyncResult(item.item)) {\n                    cacheItem = observable<ICacheItem<T>>({ ...item }, undefined, {\n                        deep: true,\n                        name: `T:${typeName}_K:${key}`\n                    });\n                } else {\n                    cacheItem = item;\n                }\n                this.internalCache[typeName][key] = cacheItem;\n            }\n\n            return true;\n        });\n    }\n\n    /**\n     * @function        {get}           - Method to get the cached item\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @return          {IAny}          - cached value against the given cache key\n     */\n    public get<T = unknown>(cacheKey: ICacheKey): ICacheItem<T> | undefined {\n        if (!cacheKey) {\n            throw new Error(`Invalid cacheKey: ${cacheKey}`);\n        }\n\n        if (!cacheKey.typeName) {\n            throw new Error(`Invalid cacheKey type: ${cacheKey.typeName}`);\n        }\n\n        cacheKey = normalizeCacheKey(cacheKey);\n        return this.internalCache[cacheKey.typeName] ? <ICacheItem<T>>this.internalCache[cacheKey.typeName][cacheKey.key] : undefined;\n    }\n\n    /**\n     * @function        {get}           - Method to get the cached item\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @return          {IAny}          - cached value against the given cache key\n     */\n    public getAllItems<T = unknown>(typeName: string): IDictionary<ICacheItem<T>> | undefined {\n        if (!typeName) {\n            throw new Error(`typeName cannot be empty`);\n        }\n\n        return <IDictionary<ICacheItem<T>>>this.internalCache[typeName.toUpperCase()];\n    }\n\n    /**\n     * @function        {getValue}           - Method to get the cached item\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @return          {IAny}          - cached value against the given cache key\n     */\n    public getValue<T = unknown>(cacheKey: ICacheKey): T | undefined {\n        const cachedItem: ICacheItem<T> | undefined = this.get<T>(cacheKey);\n        return cachedItem ? this._value<T>(cachedItem) : undefined;\n    }\n\n    /**\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @param toCache   {ICache}        - cache object to which the item needs to be copied\n     * @return          {ICacheItem}    - cache item that was copied\n     */\n    public copyTo<T = unknown>(cacheKey: ICacheKey, toCache: ICache): ICacheItem<T> | undefined {\n        throw new Error('Not Implemented');\n    }\n\n    /**\n     * @function    {del}               - Method to delete an item from the cache\n     * @param key   {ICacheKey}       - Array of ICacheGetData items whose values need to be deleted from cache\n     * @return      {number}            - returns true if the cache key is deleted successfully. Does not throw errors.\n     */\n    public del(cacheKey: ICacheKey): boolean {\n        cacheKey = normalizeCacheKey(cacheKey);\n        const cacheType = this.internalCache[cacheKey.typeName];\n        if (cacheType && cacheType[cacheKey.key]) {\n            delete cacheType[cacheKey.key];\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @function    {flushAll}          - Method to flush all data from the cache\n     */\n    public flushAll(): void {\n        this.internalCache = {};\n    }\n\n    /**\n     * @function    {keys}              - Method to fetch all the keys in the cache\n     * @return      {string[]}          - returns a list of all the keys in the cache\n     */\n    public keys(): string[] {\n        return Object.keys(this.internalCache);\n    }\n\n    /**\n     * Get the value out of a cache item\n     * This returns the raw value of the item, it will *not* be a MobX observable value\n     * @param item The observable cache item to retireve the value from\n     */\n    private _value<T>(item: ICacheItem<T>): T {\n        return item.item;\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// NOTE: no-any is disabled intentionally, as promises require valid use of the any type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { observable } from 'mobx';\nimport { IODataMetadata } from './interfaces/IODataMetadata';\n\nexport type AsyncResultStatus = 'LOADING' | 'SUCCESS' | 'FAILED';\n\nexport const isAsyncResult = (item: { toString(): string }): item is AsyncResult<unknown> => {\n    return item && item.toString && typeof item.toString === 'function' && item.toString() === `[object AsyncResult]`;\n};\n\n/**\n * Utility Methods For AsyncResult\n */\nconst isThenable = (obj: any) => obj && typeof obj === 'object' && typeof obj.then === 'function';\n\n/**\n * TYPES & INTERFACES\n */\ninterface IHandler<TIn, TOut> {\n    onSuccess: HandlerOnSuccess<TIn, TOut>;\n    onFail: HandlerOnFail<TOut>;\n}\n\ntype HandlerOnSuccess<TIn, TOut> = (value: TIn) => TOut | PromiseLike<TOut>;\ntype HandlerOnFail<TOut = never> = (reason: any) => TOut | PromiseLike<TOut>;\n\ntype Resolve<T> = (value?: T | PromiseLike<T>) => void;\ntype Reject = (value?: any) => void;\n\n/**\n * AsyncResult Class\n * Promise-style class which allows for observation of the status of the promise\n * and it's result during and after is execution.\n */\nexport class AsyncResult<T> implements Promise<T> {\n    @observable public result?: T;\n\n    @observable public status: AsyncResultStatus = 'LOADING';\n\n    @observable public error?: Error;\n\n    @observable public metadata: IODataMetadata = {};\n\n    private _type: string = 'AsyncResult';\n\n    public getType(): string {\n        return this._type;\n    }\n\n    private _handlers: Array<IHandler<T, any>> = [];\n\n    public static resolve<U = any>(value?: U | PromiseLike<U>): AsyncResult<U> {\n        return new AsyncResult<U>(resolve => {\n            return resolve(value);\n        });\n    }\n\n    public static reject<U>(reason?: any): AsyncResult<U> {\n        return new AsyncResult<U>((resolve, reject) => {\n            return reject(reason);\n        });\n    }\n\n    /**\n     * Class constructor, which starts running the passed executor\n     * @param executor Passed function to be executed, resulting in resolution/rejection\n     */\n    constructor(executor: (resolve: Resolve<T>, reject: Reject) => void) {\n        try {\n            executor(this._resolve, this._reject);\n        } catch (e) {\n            this._reject(e);\n        }\n    }\n\n    /**\n     * Method that allows for an executor to be passed to the promise after inital execution,\n     * essentially \"rerunning\" the promise.\n     * @param executor Passed function to be executed, resulting in resolution/rejection\n     */\n    public run(executor: (resolve: Resolve<T>, reject: Reject) => void): void {\n        this.status = 'LOADING';\n        this.error = undefined;\n        try {\n            executor(this._resolve, this._reject);\n        } catch (e) {\n            this._reject(e);\n        }\n    }\n\n    /**\n     * Method which allows chaining of callbacks to the end of a fully executed AsyncResult\n     * @param onSuccess Callback to be run on successful completion of executor\n     * @param onFail Callback to be run when executor cannot be successfully completed\n     */\n    public then<TResult1 = T, TResult2 = never>(\n        onSuccess?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,\n        onFail?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null\n    ): AsyncResult<TResult1 | TResult2> {\n        const asyncResult = new AsyncResult<TResult1 | TResult2>((resolve, reject) => {\n            return this._attachHandler({\n                onSuccess: result => {\n                    if (!onSuccess) {\n                        return resolve(result as any);\n                    }\n\n                    try {\n                        return resolve(onSuccess(result));\n                    } catch (e) {\n                        return reject(e);\n                    }\n                },\n                onFail: reason => {\n                    if (!onFail) {\n                        return reject(reason);\n                    }\n\n                    try {\n                        return resolve(onFail(reason));\n                    } catch (e) {\n                        return reject(e);\n                    }\n                }\n            });\n        });\n\n        // Always pass the metadata on a then\n        asyncResult.metadata = this.metadata;\n\n        return asyncResult;\n    }\n\n    /**\n     * Hook to allow callback on the unsuccessful run of an executor\n     * @param onFail Callback to run when executor fails\n     */\n    public catch<TResult = never>(onFail?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): AsyncResult<T | TResult> {\n        const defaultThen = (value: any) => value;\n        return this.then(defaultThen, onFail);\n    }\n\n    /**\n     * Hook to allow a callback to be executed on a successful or unsuccessful run of the executor\n     * @param callback Callback to be run after original AsyncResult is completed\n     */\n    public finally(onfinally?: (() => void) | undefined | null): AsyncResult<T> {\n        return new AsyncResult((resolve, reject) => {\n            let value: T | any;\n            let failed: Boolean = false;\n\n            return this.then(\n                result => {\n                    value = result;\n                    return onfinally();\n                },\n                reason => {\n                    failed = true;\n                    value = reason;\n                    return onfinally();\n                }\n            ).then(() => {\n                if (failed) {\n                    return reject(value);\n                }\n\n                return resolve(value);\n            });\n        });\n    }\n\n    public toString(): string {\n        return `[object AsyncResult]`;\n    }\n\n    get [Symbol.toStringTag](): string {\n        return '[object AsyncResult]';\n    }\n\n    private _attachHandler = (handler: IHandler<T, any>) => {\n        this._handlers.push(handler);\n\n        this._executeHandlers();\n    };\n\n    private _executeHandlers = () => {\n        if (this.status === 'LOADING') {\n            return;\n        }\n\n        for (const handler of this._handlers) {\n            if (this.status === 'FAILED') {\n                handler.onFail(this.error);\n            } else {\n                handler.onSuccess(this.result as T);\n            }\n        }\n\n        this._handlers = [];\n    };\n\n    private _resolve = (value?: T | PromiseLike<T>) => {\n        return this._updateStatus(value, 'SUCCESS');\n    };\n\n    private _reject = (reason: any) => {\n        return this._updateStatus(reason, 'FAILED', true);\n    };\n\n    private _updateStatus(result: T | any, newStatus: AsyncResultStatus, isError: Boolean = false): void {\n        // Wrap in setTimeout to ensure fully synchronous handlers\n        // are still returned AFTER initial class construction\n        setTimeout(() => {\n            if (this.status !== 'LOADING') {\n                return null;\n            }\n\n            if (isThenable(result)) {\n                return (result as PromiseLike<T>).then(this._resolve, this._reject);\n            }\n\n            if (isError) {\n                this.error = result;\n            } else {\n                this.result = result;\n            }\n\n            this.status = newStatus;\n\n            return this._executeHandlers();\n        }, 0);\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { ProxyError } from './ProxyError';\n\nexport class ErrorTypeEnum {\n    public static SERVER_ERROR: string = 'string_29002';\n    public static SERVICE_UNAVAILABLE: string = 'string_29278';\n    public static SERVER_TIMEOUT: string = 'string_29279';\n    public static RETAIL_SERVER_REDIRECT_ERROR = 'RETAIL_SERVER_REDIRECT_ERROR';\n    public static GENERICERRORMESSAGE: string = 'string_29201';\n    public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = ErrorTypeEnum.GENERICERRORMESSAGE;\n    public static BAD_REQUEST: string = 'string_29274';\n    public static NOT_AUTHORIZIED: string = 'string_29275';\n    public static FORBIDDEN: string = 'string_29276';\n    public static PRECONDITION_FAILED: string = 'string_29277';\n    public static RETURN_NO_ORDERS_FOUND: string = 'string_1218';\n}\n\n/**\n * Forward links for device activation errors.\n */\nexport class DeviceActivationErrorsForwardLinks {\n    public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANNELDATABASECONNECTIONFAILED: string =\n        'http://go.microsoft.com/fwlink/?LinkId=403590';\n    public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REALTIMESERVICECONNECTIONFAILED: string =\n        'http://go.microsoft.com/fwlink/?LinkId=403591';\n    public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TERMINALNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403592';\n    public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_USERNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403593';\n    public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCORRECTSTAFFIDORPASSWORD: string = 'http://go.microsoft.com/fwlink/?LinkId=403594';\n    public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEVICEALREADYACTIVATED: string = 'http://go.microsoft.com/fwlink/?LinkId=519136';\n    public static SERVER_ERROR: string = 'http://go.microsoft.com/fwlink/?LinkId=519137';\n}\n\nexport class ErrorHelper {\n    private static AGGREGATED_ERROR_RESOUCEIDS: string[] = [\n        'Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError',\n        'Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError',\n        'Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError'\n    ];\n\n    public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = 'Microsoft_Dynamics_Internal_Server_Error';\n\n    public static isAggregatedErrorResourceId(errorResourceId: string): boolean {\n        return ErrorHelper.AGGREGATED_ERROR_RESOUCEIDS.indexOf(errorResourceId) !== -1;\n    }\n\n    /**\n     * Map response status code to error.\n     *\n     * @param {any} Error returned by retail server call.\n     */\n    public static MapResponseStatusCodeToError(errorMessage: string, statusCode: number, err?: any): ProxyError {\n        let errorCode = '';\n        let canRetry = false;\n\n        switch (statusCode) {\n            case 400:\n                errorCode = ErrorTypeEnum.BAD_REQUEST;\n                break;\n            case 401:\n                errorCode = ErrorTypeEnum.NOT_AUTHORIZIED;\n                break;\n            case 403:\n                errorCode = ErrorTypeEnum.FORBIDDEN;\n                break;\n            case 412:\n                errorCode = ErrorTypeEnum.PRECONDITION_FAILED;\n                break;\n            case 503:\n                errorCode = ErrorTypeEnum.SERVICE_UNAVAILABLE;\n                canRetry = true;\n                break;\n            case 500:\n            default:\n                errorCode = ErrorTypeEnum.SERVER_ERROR;\n                errorMessage = 'The server error format is not supported or it does not have enough information.';\n\n                // Temporary until the fix for Bug 681427 goes in\n                // If no orders were found, than an error did not occur\n                if (err && err.response && err.response.body && err.response.requestUri) {\n                    if (err.response.requestUri.indexOf('GetOrderByReceiptId') > -1) {\n                        if (err.response.body.indexOf('No orders were found') > -1) {\n                            errorMessage = ErrorTypeEnum.RETURN_NO_ORDERS_FOUND;\n                        }\n                    }\n                }\n        }\n\n        if (errorMessage && errorMessage.toUpperCase() === 'TIMEOUT') {\n            errorCode = ErrorTypeEnum.SERVER_TIMEOUT;\n        }\n\n        return new ProxyError(errorCode, errorMessage || EMPTY, EMPTY, canRetry, err);\n    }\n\n    /**\n     * Checks whether all the provided errors are retryable. If no error code is provided or an error is undefined,\n     * then the errors will be treated as not retryable.\n     *\n     * @return {boolean} True if the error codes are retryable, false if the error codes are not retryable or not defined\n     */\n    public static isRetryable(errors: ProxyError[]): boolean {\n        const numErrors: number = !errors ? 0 : errors.length;\n        let isRetryable: boolean = numErrors > 0;\n        for (let i: number = 0; i < numErrors; i++) {\n            if (errors[i]) {\n                isRetryable = isRetryable && errors[i].CanRetry;\n            } else {\n                isRetryable = false;\n            }\n        }\n\n        return isRetryable;\n    }\n\n    /**\n     * Gets a string with all error codes.\n     * @param {ProxyError[]} errors the error collection.\n     * @return {string} a formated string containing all error codes.\n     */\n    public static getErrorResourceIds(errors: ProxyError[]): string {\n        let result: string = '';\n\n        if (hasElements(errors)) {\n            const errorResourceIds: string[] = [];\n            for (const error of errors) {\n                errorResourceIds.push(error.ErrorCode);\n            }\n\n            result = errorResourceIds.join(', ');\n        }\n\n        return result;\n    }\n\n    /**\n     * Gets a string with all error messages.\n     * @param {ProxyError[]} errors the error collection.\n     * @return {string} a formated string containing all error messages.\n     */\n    public static getErrorMessages(errors: ProxyError[]): string {\n        let result: string = '';\n\n        if (hasElements(errors)) {\n            const errorResourceIds: string[] = [];\n            for (const error of errors) {\n                errorResourceIds.push(error.LocalizedErrorMessage);\n            }\n\n            result = errorResourceIds.join(', ');\n        }\n\n        return result;\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\nimport { ICallerContext } from './../Interfaces';\n\nconst EDM = 'Edm.';\nconst EDM_BOOLEAN = EDM + 'Boolean';\nconst EDM_BYTE = EDM + 'Byte';\nconst EDM_DATETIME = EDM + 'DateTime';\nconst EDM_DATETIMEOFFSET = EDM + 'DateTimeOffset';\nconst EDM_DECIMAL = EDM + 'Decimal';\nconst EDM_DOUBLE = EDM + 'Double';\nconst EDM_INT16 = EDM + 'Int16';\nconst EDM_INT32 = EDM + 'Int32';\nconst EDM_INT64 = EDM + 'Int64';\nconst EDM_SBYTE = EDM + 'SByte';\nconst EDM_SINGLE = EDM + 'Single';\nconst EDM_TIME = EDM + 'Time';\n\nconst OBO_REQUEST = 'isOBORequest';\n\nconst parseBool = propertyValue => {\n    /// <summary>Parses a string into a boolean value.</summary>\n    /// <param name=\"propertyValue\">Value to parse.</param>\n    /// <returns type=\"Boolean\">true if the property value is 'true'; false otherwise.</returns>\n\n    if (typeof propertyValue === 'boolean') {\n        return propertyValue;\n    }\n\n    return typeof propertyValue === 'string' && propertyValue.toLowerCase() === 'true';\n};\n\nconst formatNumberWidth = (value, width, append) => {\n    /// <summary>Formats the specified value to the given width.</summary>\n    /// <param name=\"value\" type=\"Number\">Number to format (non-negative).</param>\n    /// <param name=\"width\" type=\"Number\">Minimum width for number.</param>\n    /// <param name=\"append\" type=\"Boolean\">Flag indicating if the value is padded at the beginning (false) or at the end (true).</param>\n    /// <returns type=\"String\">Text representation.</returns>\n    let result = value.toString(10);\n    while (result.length < width) {\n        if (append) {\n            result += '0';\n        } else {\n            result = '0' + result;\n        }\n    }\n\n    return result;\n};\n\nconst parseTimezone = timezone => {\n    /// <summary>Parses a timezone description in (+|-)nn:nn format.</summary>\n    /// <param name=\"timezone\" type=\"String\">Timezone offset.</param>\n    /// <returns type=\"Object\">\n    /// An object with a (d)irection property of 1 for + and -1 for -,\n    /// offset (h)ours and offset (m)inutes.\n    /// </returns>\n\n    let direction = timezone.substring(0, 1);\n    direction = direction === '+' ? 1 : -1;\n\n    const offsetHours = parseInt(timezone.substring(1), 10);\n    const offsetMinutes = parseInt(timezone.substring(timezone.indexOf(':') + 1), 10);\n    return { d: direction, h: offsetHours, m: offsetMinutes };\n};\n\n// The captured indices for this expression are:\n// 0       - complete input\n// 1       - direction\n// 2,3,4   - years, months, days\n// 5,6,7,8 - hours, minutes, seconds, miliseconds\nconst parseTimeRE = /^([+-])?P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)(?:\\.(\\d+))?S)?)?/;\n\n// The captured indices for this expression are:\n// 0     - complete input\n// 1,2,3 - year with optional minus sign, month, day\n// 4,5,6 - hours, minutes, seconds\n// 7     - optional milliseconds\n// 8     - everything else (presumably offset information)\nconst parseDateTimeRE = /^(-?\\d{4,})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(.*)$/;\n\nconst getCanonicalTimezone = timezone => {\n    /// <summary>Gets the canonical timezone representation.</summary>\n    /// <param name=\"timezone\" type=\"String\">Timezone representation.</param>\n    /// <returns type=\"String\">An 'Z' string if the timezone is absent or 0; the timezone otherwise.</returns>\n\n    return !timezone || timezone === 'Z' || timezone === '+00:00' || timezone === '-00:00' ? 'Z' : timezone;\n};\n\nconst parseDuration = duration => {\n    /// <summary>Parses a string in xsd:duration format.</summary>\n    /// <param name=\"duration\" type=\"String\">Duration value.</param>\n    /// <remarks>\n    /// This method will throw an exception if the input string has a year or a month component.\n    /// </remarks>\n    /// <returns type=\"Object\">Object representing the time</returns>\n\n    const parts = parseTimeRE.exec(duration);\n\n    if (parts === null) {\n        throw { message: 'Invalid duration value.' };\n    }\n\n    const years = parts[2] || '0';\n    const months = parts[3] || '0';\n    const days = parseInt(parts[4], 10) || 0;\n    const hours = parseInt(parts[5], 10) || 0;\n    const minutes = parseInt(parts[6], 10) || 0;\n    const seconds = parseFloat(parts[7]) || 0;\n\n    if (years !== '0' || months !== '0') {\n        throw { message: 'Unsupported duration value.' };\n    }\n\n    let ms: any = parts[8];\n    let ns: any = 0;\n    if (!ms) {\n        ms = 0;\n    } else {\n        if (ms.length > 7) {\n            throw { message: 'Cannot parse duration value to given precision.' };\n        }\n\n        ns = formatNumberWidth(ms.substring(3), 4, true);\n        ms = formatNumberWidth(ms.substring(0, 3), 3, true);\n\n        ms = parseInt(ms, 10);\n        ns = parseInt(ns, 10);\n    }\n\n    ms += seconds * 1000 + minutes * 60000 + hours * 3600000 + days * 86400000;\n\n    if (parts[1] === '-') {\n        ms = -ms;\n    }\n\n    const result: any = { ms, __edmType: 'Edm.Time' };\n\n    if (ns) {\n        result.ns = ns;\n    }\n    return result;\n};\n\nconst parseDateTimeOffset = (value, withOffset, nullOnError) => {\n    /// <summary>Parses a string into a DateTime value.</summary>\n    /// <param name=\"value\" type=\"String\">Value to parse.</param>\n    /// <param name=\"withOffset\" type=\"Boolean\">Whether offset is expected.</param>\n    /// <returns type=\"Date\">The parsed value.</returns>\n\n    // We cannot parse this in cases of failure to match or if offset information is specified.\n    const parts = parseDateTimeRE.exec(value);\n    const offset = parts ? getCanonicalTimezone(parts[8]) : null;\n\n    if (!parts || (!withOffset && offset !== 'Z')) {\n        if (nullOnError) {\n            return null;\n        }\n        throw { message: 'Invalid date/time value' };\n    }\n\n    // Pre-parse years, account for year '0' being invalid in dateTime.\n    let year = parseInt(parts[1], 10);\n    if (year <= 0) {\n        year++;\n    }\n\n    // Pre-parse optional milliseconds, fill in default. Fail if value is too precise.\n    let ms: any = parts[7];\n    let ns: any = 0;\n    if (!ms) {\n        ms = 0;\n    } else {\n        if (ms.length > 7) {\n            if (nullOnError) {\n                return null;\n            }\n            throw { message: 'Cannot parse date/time value to given precision.' };\n        }\n\n        ns = formatNumberWidth(ms.substring(3), 4, true);\n        ms = formatNumberWidth(ms.substring(0, 3), 3, true);\n\n        ms = parseInt(ms, 10);\n        ns = parseInt(ns, 10);\n    }\n\n    // Pre-parse other time components and offset them if necessary.\n    let hours = parseInt(parts[4], 10);\n    let minutes = parseInt(parts[5], 10);\n    const seconds = parseInt(parts[6], 10);\n    if (offset !== 'Z') {\n        // The offset is reversed to get back the UTC date, which is\n        // what the API will eventually have.\n        const timezone = parseTimezone(offset);\n        const direction = -timezone.d;\n        hours += timezone.h * direction;\n        minutes += timezone.m * direction;\n    }\n\n    // Set the date and time separately with setFullYear, so years 0-99 aren't biased like in Date.UTC.\n    const result: any = new Date();\n    result.setUTCFullYear(\n        year, // Year.\n        parseInt(parts[2], 10) - 1, // Month (zero-based for Date.UTC and setFullYear).\n        parseInt(parts[3], 10) // Date.\n    );\n    result.setUTCHours(hours, minutes, seconds, ms);\n\n    if (isNaN(result.valueOf())) {\n        if (nullOnError) {\n            return null;\n        }\n        throw { message: 'Invalid date/time value' };\n    }\n\n    if (withOffset) {\n        result.__edmType = 'Edm.DateTimeOffset';\n        result.__offset = offset;\n    }\n\n    if (ns) {\n        result.__ns = ns;\n    }\n\n    return result;\n};\n\nexport const jsonLightReadStringPropertyValue = (value, propertyType, recognizeDates) => {\n    /// <summary>Convertes the value of a string property in a JSON light object to its library representation.</summary>\n    /// <param name=\"value\" type=\"String\">String value to convert.</param>\n    /// <param name=\"propertyType\" type=\"String\">Type name of the property.</param>\n    /// <param name=\"recognizeDates\" type=\"Boolean\" optional=\"true\">Flag indicating whether datetime literal strings should be converted to JavaScript Date objects.</param>\n    /// <returns>String property value in its library representation.</returns>\n\n    switch (propertyType) {\n        case EDM_BOOLEAN:\n            return parseBool(value);\n        case EDM_BYTE:\n        case EDM_INT16:\n        case EDM_INT32:\n        case EDM_INT64:\n        case EDM_SBYTE:\n            return parseInt(value, 10);\n        case EDM_DOUBLE:\n        case EDM_SINGLE:\n        case EDM_DECIMAL:\n            return parseFloat(value);\n        case EDM_TIME:\n            return parseDuration(value);\n        case EDM_DATETIME:\n            const dateStr = value || '';\n            const time = dateStr.substring(dateStr.indexOf('T') + 1);\n            const timezoneOffsetIndex = time.indexOf('-');\n            timezoneOffsetIndex === -1 ? time.indexOf('+') : timezoneOffsetIndex;\n\n            if (timezoneOffsetIndex !== -1) {\n                return parseDateTimeOffset(value, true, /* nullOnError */ false);\n            } else {\n                return parseDateTimeOffset(value, false, /* nullOnError */ false);\n            }\n        case EDM_DATETIMEOFFSET:\n            return parseDateTimeOffset(value, true, /* nullOnError */ false);\n    }\n\n    if (recognizeDates) {\n        return (\n            parseDateTimeOffset(value, false, /* nullOnError */ true) || parseDateTimeOffset(value, true, /* nullOnError */ true) || value\n        );\n    }\n    return value;\n};\n\n// isOBORequest representing whether current user is on behalf of or not\nexport const isOboRequest = (callerContext: ICallerContext): boolean => {\n    const { user } = callerContext.requestContext;\n    return user[OBO_REQUEST] || false;\n};\n","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { ProductCatalog } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function catalogsQuery(recordId?: number): DataServiceQuery {\n        var key = (recordId) ? { RecordId: recordId } : null;\n        return new DataServiceQuery(\"Catalogs\", \"ProductCatalog\", \"ProductCatalogClass\", key);\n    }\n    \n    export function createCreateInput(entity: ProductCatalog): IDataServiceRequest {\n        return catalogsQuery().create(entity);\n    }\n\n    export function createProductCatalogAsync(context: IContext, entity: ProductCatalog): AsyncResult<ProductCatalog> {\n        const request = createCreateInput(entity);\n        return executeAction<ProductCatalog>(request, context);\n    }\n\n    export function createUpdateInput(entity: ProductCatalog): IDataServiceRequest {\n        return catalogsQuery(entity.RecordId).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: ProductCatalog): AsyncResult<ProductCatalog> {\n        const request = createUpdateInput(entity);\n        return executeAction<ProductCatalog>(request, context);\n    }\n\n    export function createDeleteAsync(entity: ProductCatalog): IDataServiceRequest {\n        return catalogsQuery(entity.RecordId).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: ProductCatalog): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(recordId: number): IDataServiceRequest {\n        return catalogsQuery(recordId).read();\n    }\n\n    export function readAsync(context: IContext, recordId: number): AsyncResult<ProductCatalog> {\n        const request = createReadAsync(recordId);\n        return executeAction<ProductCatalog>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return catalogsQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<ProductCatalog[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<ProductCatalog[]>(request, context);\n    }\n    \n    export function createGetCatalogsInput(queryResultSettings: IQueryResultSettings, channelId: number, activeOnly: boolean): IDataServiceRequest {      \n        const query = catalogsQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCatalogs', true, \n             'ProductCatalogClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'ProductCatalog'}, {channelId: channelId, activeOnly: activeOnly });\n    }    \n    \n    export function getCatalogsAsync(context: IContext, channelId: number, activeOnly: boolean):AsyncResult<ProductCatalog[]> {\n        const request = createGetCatalogsInput(context.queryResultSettings, channelId, activeOnly);\n        return executeAction<ProductCatalog[]>(request, context);\n    }          \n          \n    ","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { Category, AttributeCategory } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function categoriesQuery(recordId?: number): DataServiceQuery {\n        var key = (recordId) ? { RecordId: recordId } : null;\n        return new DataServiceQuery(\"Categories\", \"Category\", \"CategoryClass\", key);\n    }\n    \n    export function createCreateInput(entity: Category): IDataServiceRequest {\n        return categoriesQuery().create(entity);\n    }\n\n    export function createCategoryAsync(context: IContext, entity: Category): AsyncResult<Category> {\n        const request = createCreateInput(entity);\n        return executeAction<Category>(request, context);\n    }\n\n    export function createUpdateInput(entity: Category): IDataServiceRequest {\n        return categoriesQuery(entity.RecordId).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: Category): AsyncResult<Category> {\n        const request = createUpdateInput(entity);\n        return executeAction<Category>(request, context);\n    }\n\n    export function createDeleteAsync(entity: Category): IDataServiceRequest {\n        return categoriesQuery(entity.RecordId).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: Category): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(recordId: number): IDataServiceRequest {\n        return categoriesQuery(recordId).read();\n    }\n\n    export function readAsync(context: IContext, recordId: number): AsyncResult<Category> {\n        const request = createReadAsync(recordId);\n        return executeAction<Category>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return categoriesQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<Category[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<Category[]>(request, context);\n    }\n    \n    export function createGetCategoriesInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId?: number | null): IDataServiceRequest {      \n        const query = categoriesQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCategories', true, \n             'CategoryClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, catalogId: catalogId });\n    }    \n    \n    export function getCategoriesAsync(context: IContext, channelId: number, catalogId?: number | null):AsyncResult<Category[]> {\n        const request = createGetCategoriesInput(context.queryResultSettings, channelId, catalogId);\n        return executeAction<Category[]>(request, context);\n    }          \n          \n    export function createGetAttributesInput(queryResultSettings: IQueryResultSettings, categoryId: number): IDataServiceRequest {      \n        const query = categoriesQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetAttributes', false, \n             'AttributeCategoryClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {categoryId: categoryId });\n    }    \n    \n    export function getAttributesAsync(context: IContext, categoryId: number):AsyncResult<AttributeCategory[]> {\n        const request = createGetAttributesInput(context.queryResultSettings, categoryId);\n        return executeAction<AttributeCategory[]>(request, context);\n    }          \n          \n    export function createGetCatalogAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryIds: number[]): IDataServiceRequest {      \n        const query = categoriesQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetCatalogAttributes', true, \n             'AttributeCategoryClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {catalogId: catalogId, categoryIds: categoryIds });\n    }    \n    \n    export function getCatalogAttributesAsync(context: IContext, catalogId: number, categoryIds: number[]):AsyncResult<AttributeCategory[]> {\n        const request = createGetCatalogAttributesInput(context.queryResultSettings, catalogId, categoryIds);\n        return executeAction<AttributeCategory[]>(request, context);\n    }          \n          \n    export function createGetChildrenInput(queryResultSettings: IQueryResultSettings, channelId: number, categoryId: number): IDataServiceRequest {      \n        const query = categoriesQuery().resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetChildren', true, \n             'CategoryClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, categoryId: categoryId });\n    }    \n    \n    export function getChildrenAsync(context: IContext, channelId: number, categoryId: number):AsyncResult<Category[]> {\n        const request = createGetChildrenInput(context.queryResultSettings, channelId, categoryId);\n        return executeAction<Category[]>(request, context);\n    }          \n          \n    ","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n  var i = buf && offset || 0;\n  var b = buf || [];\n\n  options = options || {};\n  var node = options.node || _nodeId;\n  var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n  // node and clockseq need to be initialized to random values if they're not\n  // specified.  We do this lazily to minimize issues related to insufficient\n  // system entropy.  See #189\n  if (node == null || clockseq == null) {\n    var seedBytes = rng();\n    if (node == null) {\n      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n      node = _nodeId = [\n        seedBytes[0] | 0x01,\n        seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n      ];\n    }\n    if (clockseq == null) {\n      // Per 4.2.2, randomize (14 bit) clockseq\n      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n    }\n  }\n\n  // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so\n  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n  var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n  // Per 4.2.1.2, use count of uuid's generated during the current clock\n  // cycle to simulate higher resolution clock\n  var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n  // Time since last uuid creation (in msecs)\n  var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n  // Per 4.2.1.2, Bump clockseq on clock regression\n  if (dt < 0 && options.clockseq === undefined) {\n    clockseq = clockseq + 1 & 0x3fff;\n  }\n\n  // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n  // time interval\n  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n    nsecs = 0;\n  }\n\n  // Per 4.2.1.2 Throw error if too many uuids are requested\n  if (nsecs >= 10000) {\n    throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n  }\n\n  _lastMSecs = msecs;\n  _lastNSecs = nsecs;\n  _clockseq = clockseq;\n\n  // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n  msecs += 12219292800000;\n\n  // `time_low`\n  var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n  b[i++] = tl >>> 24 & 0xff;\n  b[i++] = tl >>> 16 & 0xff;\n  b[i++] = tl >>> 8 & 0xff;\n  b[i++] = tl & 0xff;\n\n  // `time_mid`\n  var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n  b[i++] = tmh >>> 8 & 0xff;\n  b[i++] = tmh & 0xff;\n\n  // `time_high_and_version`\n  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n  b[i++] = tmh >>> 16 & 0xff;\n\n  // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n  b[i++] = clockseq >>> 8 | 0x80;\n\n  // `clock_seq_low`\n  b[i++] = clockseq & 0xff;\n\n  // `node`\n  for (var n = 0; n < 6; ++n) {\n    b[i + n] = node[n];\n  }\n\n  return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","// Unique ID creation requires a high quality random # generator.  In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API.  We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n                      (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n  // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n  var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n  module.exports = function whatwgRNG() {\n    getRandomValues(rnds8);\n    return rnds8;\n  };\n} else {\n  // Math.random()-based (RNG)\n  //\n  // If all else fails, use Math.random().  It's fast, but is of unspecified\n  // quality.\n  var rnds = new Array(16);\n\n  module.exports = function mathRNG() {\n    for (var i = 0, r; i < 16; i++) {\n      if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n      rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n    }\n\n    return rnds;\n  };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CommerceException, DataValidationException, DataValidationFailure } from '../Entities/CommerceTypes.g';\nimport { EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { genericWarning, Tracer } from '../logging';\nimport { ErrorTypeEnum, ErrorHelper } from './ErrorHelper';\nimport { ProxyError } from './ProxyError';\nimport {\n    ICallerContext\n} from './../Interfaces';\nimport {\n    isOboRequest\n} from './../externals/helper'\n\n/**\n * Error parser class.\n */\nexport class ErrorParser {\n    private static DataValidationExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.DataValidationException';\n    private static CartValidationExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.CartValidationException';\n    private static StorageExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.StorageException';\n\n    /**\n     * Parses an error message.\n     *\n     * @param {any} error The error message.\n     * @return {ProxyError[]} The collection of error messages.\n     */\n    public static parseErrorMessage(error: any, callerContext?: ICallerContext): ProxyError[] {\n        const response = error.response;\n        let errors: ProxyError[] = [];\n        const isObo = callerContext ? isOboRequest(callerContext) : false;\n        if (response) {\n            let handled = true;\n            Tracer.Information(`Server response status code is '${response.statusCode}'`);\n            switch (response.statusCode) {\n                case 306: // Custom - Redirection\n                    const redirectUrl = response.headers['Location'];\n                    error.redirectUrl = redirectUrl;\n                    errors = [new ProxyError(ErrorTypeEnum.RETAIL_SERVER_REDIRECT_ERROR, response.statusText, EMPTY, false, error)];\n                    break;\n\n                case 401: // Unauthorized (Generally Expired Token)\n                    if (process.env.CURRENT_ENVIRONMENT === 'web') {\n                        const redirectCountQueryString = 'rdc';\n                        const noRedirectQueryString = 'noredirect';\n                        try {\n                            const currentUrl = new URL(location.href);\n                            if (currentUrl.searchParams.get(noRedirectQueryString)) {\n                                break;\n                            }\n                            if (isObo) {\n                                break;\n                            }\n                            const rdc = parseInt(currentUrl.searchParams.get(redirectCountQueryString), 10) || 0;\n                            if (rdc && rdc >= 3) {\n                                break;\n                            }\n                            currentUrl.searchParams.set(redirectCountQueryString, `${rdc + 1}`);\n                            location.href = currentUrl.href;\n                        } catch (e) {\n                            break;\n                        }\n                    }\n\n                    break;\n\n                case 408: // Request Timeout\n                    errors = [new ProxyError(ErrorTypeEnum.SERVER_TIMEOUT, response.statusText, EMPTY, false, error)];\n                    break;\n\n                case 0: // WWAHost reports status code as 0, If server is unreachable.\n                case 502: // Bad Gateway\n                case 503: // Service Unavailable\n                case 504: // Gateway timeout\n                    errors = [new ProxyError(ErrorTypeEnum.SERVICE_UNAVAILABLE, response.statusText, EMPTY, false, error)];\n                    break;\n\n                default:\n                    handled = false;\n            }\n\n            if (!handled) {\n                errors = ErrorParser.parseError(error);\n            }\n        }\n\n        // If we couldn't create any error object from error message, add error parsing failure\n        if (!errors || !errors.length) {\n            errors = [new ProxyError(ErrorTypeEnum.SERVER_ERROR, 'Could not parse error message sent by the server.', EMPTY, false, error)];\n        }\n\n        return errors;\n    }\n\n    /**\n     * Parses an error message sent from Hardware station.\n     *\n     * @param {any} error The error message.\n     * @retunrs {ProxyError[]} The collection of error messages.\n     */\n    public static parseHardwareStationErrorMessage(error: any): ProxyError[] {\n        let errors: ProxyError[] = [];\n\n        if (error) {\n            try {\n                const response = error.responseText;\n\n                if (response) {\n                    const jsonResponse = JSON.parse(response);\n\n                    // Parse errors in json format\n                    if (jsonResponse) {\n                        errors = [\n                            new ProxyError(\n                                jsonResponse.ErrorResourceId ? jsonResponse.ErrorResourceId : ErrorTypeEnum.SERVER_ERROR,\n                                jsonResponse.Message || '',\n                                EMPTY,\n                                false,\n                                error\n                            )\n                        ];\n                    } else {\n                        // If not in json, we cannot parse it\n                        errors = [\n                            new ProxyError(\n                                ErrorTypeEnum.SERVER_ERROR,\n                                'The value of Content-Type on server response is not supported.',\n                                EMPTY,\n                                false,\n                                error\n                            )\n                        ];\n                    }\n                } else {\n                    // In case we don't have a body, we don't know the error message but from http status\n                    errors = [ErrorHelper.MapResponseStatusCodeToError(error.statusText, error.status, error)];\n                }\n            } catch (ex) {\n                const errorMessage: string = `parseHardwareStationErrorMessage: Failed parse error message '${ex.message}'.`;\n                Tracer.Error(errorMessage, ex);\n            }\n        }\n\n        // If we couldn't create any error object from error message, add error parsing failure\n        if (!errors || !errors.length) {\n            errors = [new ProxyError(ErrorTypeEnum.SERVER_ERROR, 'Could not parse error message sent by the server.', EMPTY, false, error)];\n        }\n\n        return errors;\n    }\n\n    public static parseJSONError(errorString: string, errorResponse?: any): ProxyError[] {\n        let commerceErrors: ProxyError[] = [];\n\n        try {\n            const odataError: any = JSON.parse(errorString);\n            odataError.CorrelationId = errorResponse.data.CorrelationId;\n\n            // assign parsed data to errorResponse\n            errorResponse.data = odataError;\n\n            // due to odata json format limitation, a collection of errors is provided in the message field\n            const localizedMessage: string = odataError.LocalizedMessage;\n            const exceptionType: string = odataError.ErrorResourceId;\n\n            if (exceptionType === ErrorTypeEnum.MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR) {\n                commerceErrors = [\n                    new ProxyError(\n                        ErrorTypeEnum.MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR,\n                        localizedMessage || 'Server failed with uncaught exception. Please report this failure.',\n                        localizedMessage,\n                        false,\n                        errorResponse\n                    )\n                ];\n            } else if (localizedMessage != null && exceptionType != null) {\n                commerceErrors = ErrorParser.convertExceptionToErrors(odataError, exceptionType, errorResponse);\n            } else {\n                throw new Error('Server exception is not in expected format.');\n            }\n        } catch (ex) {\n            const errorMessage: string =\n                'DataServiceRequest::parseJSONError: Invalid json format from server. It was not possible to parse error message. {0}';\n            Tracer.Error(errorMessage, ex);\n        }\n\n        if (!hasElements(commerceErrors)) {\n            commerceErrors = [\n                new ProxyError(\n                    ErrorTypeEnum.GENERICERRORMESSAGE,\n                    'Could not parse error message from server. Possible invalid OData request, please check your request.',\n                    EMPTY,\n                    false,\n                    errorResponse\n                )\n            ];\n        }\n\n        return commerceErrors;\n    }\n\n    private static convertExceptionToErrors(serverException: CommerceException, exceptionType: string, errorResponse: any): ProxyError[] {\n        let errors: ProxyError[] = [];\n\n        switch (exceptionType) {\n            // CartValidationExceptionType extends DataValidationExceptionType\n            case ErrorParser.DataValidationExceptionType:\n            case ErrorParser.CartValidationExceptionType:\n                const dataValidation: DataValidationException = serverException as DataValidationException;\n                // json is in odata format, array has elements inside result member\n                errors = ErrorParser.getErrorsFromDataValidationFailures(dataValidation.ValidationResults as any);\n                errors.push(\n                    new ProxyError(\n                        dataValidation.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n                        EMPTY,\n                        dataValidation.LocalizedMessage,\n                        false,\n                        errorResponse\n                    )\n                );\n                break;\n\n            case ErrorParser.StorageExceptionType:\n                errors.push(\n                    new ProxyError(ErrorTypeEnum.SERVICE_UNAVAILABLE, EMPTY, serverException.LocalizedMessage, false, errorResponse)\n                );\n                break;\n        }\n\n        if (errors.length === 0) {\n            const error: ProxyError = new ProxyError(\n                serverException.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n                EMPTY,\n                serverException.LocalizedMessage,\n                false,\n                errorResponse\n            );\n            error.commerceException = serverException;\n            errors.push(error);\n        }\n\n        return errors;\n    }\n\n    private static getErrorsFromDataValidationFailures(failures: DataValidationFailure[]): ProxyError[] {\n        const errors: ProxyError[] = [];\n        failures = failures || [];\n\n        for (const failure of failures) {\n            errors.push(\n                new ProxyError(\n                    failure.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n                    failure.ErrorContext || '',\n                    failure.LocalizedMessage,\n                    false,\n                    {}\n                )\n            );\n        }\n\n        return errors;\n    }\n\n    /**\n     * Parses an error to get the error code and error message.\n     *\n     * @param {any} error The error message.\n     * @retunrs {ProxyError[]} The collection of error messages.\n     */\n    private static parseError(error: any): ProxyError[] {\n        const response = error.response;\n        let errors: ProxyError[] = [];\n        if (response.body && response.data) {\n            // If we have a response body\n            const contentType: string = (response.headers && (response.headers['Content-Type'] || response.headers['content-type'])) || '';\n            const bodyString: string = response.data.Exception;\n            // Parse errors in json format\n            if (contentType.toLowerCase().indexOf('application/json') !== -1) {\n                errors = ErrorParser.parseJSONError(bodyString, error.response);\n            } else {\n                const message: string = `Server error has been received with unsupported content type: '${contentType}'.`;\n                genericWarning(message);\n            }\n        }\n        // if we couldn't parse the errors from the body, we can only rely on status text and status code\n        if (!hasElements(errors)) {\n            // In case we don't have a body, we don't know the error message but from http status code\n            errors = [ErrorHelper.MapResponseStatusCodeToError(response.statusText, response.statusCode, error)];\n        }\n        return errors;\n    }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport axios from 'axios';\nimport { ICacheKey, ICallerContext, IRequestContextParams } from '../Interfaces';\nimport { jsonHandler } from './handler';\n\n/**\n * OData request interface.\n */\nexport interface IODataRequest {\n    /**\n     * OData endpoint URI\n     */\n    requestUri: string;\n\n    /**\n     * HTTP method (GET, POST, PUT, DELETE)\n     */\n    method: string;\n\n    /**\n     * Payload of the request (in intermediate format)\n     */\n    data: any;\n\n    /**\n     * Object that contains HTTP headers as name value pairs\n     */\n    headers?: Object;\n\n    /**\n     * (Optional) Username to send for BASIC authentication\n     */\n    user?: string;\n\n    /**\n     * (Optional) Password to send for BASIC authentication\n     */\n    password?: string;\n\n    /**\n     * (Optional) Whether or not to use cross domain cookies.\n     */\n    useCrossDomainCookies?: boolean;\n}\n\nconst normalHeaders = {\n    accept: 'Accept',\n    'content-type': 'Content-Type',\n    'odata-version': 'OData-Version',\n    'odata-maxversion': 'OData-MaxVersion'\n};\n\nconst isAbsoluteUrl = url => {\n    /// <summary>Checks whether the specified URL is an absolute URL.</summary>\n    /// <param name=\"url\" type=\"String\">URL to check.</param>\n    /// <returns type=\"Boolean\">true if the url is an absolute URL; false otherwise.</returns>\n\n    return url.indexOf('http://') === 0 || url.indexOf('https://') === 0 || url.indexOf('file://') === 0;\n};\n\nconst normalizeHeaders = headers => {\n    /// <summary>Normalizes headers so they can be found with consistent casing.</summary>\n    /// <param name=\"headers\" type=\"Object\">Dictionary of name/value pairs.</param>\n\n    for (const name in headers) {\n        if (headers.hasOwnProperty(name)) {\n            const lowerName = name.toLowerCase();\n            const normalName = normalHeaders[lowerName];\n            if (normalName && name !== normalName) {\n                const val = headers[name];\n                delete headers[name];\n                headers[normalName] = val;\n            }\n        }\n    }\n};\n\nconst getCacheObjectValueFromReturnType = (returnType: any): string => {\n    // return type can be actual class itself like CategoryClass instead of string 'CategoryClass'\n    const cacheObjectTypeValue = typeof returnType === 'function' ? returnType.name : returnType;\n    return cacheObjectTypeValue.replace('Class', '');\n};\n\nconst defaultHttpClient = {\n    callbackParameterName: '$callback',\n    formatQueryString: '$format=json',\n    enableJsonpCallback: false,\n\n    request(request, success, error, returnType: string, clientTimeout?: number, callerContext?: ICallerContext) {\n        /// <summary>Performs a network request.</summary>\n        /// <param name=\"request\" type=\"Object\">Request description.</request>\n        /// <param name=\"success\" type=\"Function\">Success callback with the response object.</param>\n        /// <param name=\"error\" type=\"Function\">Error callback with an error object.</param>\n        /// <returns type=\"Object\">Object with an 'abort' method for the operation.</returns>\n        const result = { abort: null, handleTimeout: null };\n\n        const cancelToken = axios.CancelToken.source();\n\n        let done = false;\n        result.abort = () => {\n            if (done) {\n                return;\n            }\n            done = true;\n            cancelToken.cancel('Request aborted');\n            error({ message: 'Request aborted' });\n        };\n\n        request.handleTimeout = () => {\n            if (!done) {\n                done = true;\n                cancelToken.cancel('Request aborted');\n                error({ message: 'Request timed out' });\n            }\n        };\n\n        const url = request.requestUri;\n        const enableJsonpCallback = request.enableJsonpCallback || false;\n        if (!enableJsonpCallback || !isAbsoluteUrl(url)) {\n            let authenticationCreds;\n            if (request.user) {\n                authenticationCreds = {\n                    username: request.user,\n                    password: request.password || ''\n                };\n            }\n            // console.log('\\r\\nDataServiceRequest - \\r\\n\\n', request);\n            let axiosTimeout = request.timeoutMS || 10000;\n            // check if on client side.\n            if (process.env.CURRENT_ENVIRONMENT === 'web') {\n                // @ts-ignore -using client window object\n                if (typeof window != undefined && window.___initialData___) {\n                    // @ts-ignore -using client window object\n                    const initialData = window.___initialData___;\n                    const rtype = getCacheObjectValueFromReturnType(returnType);\n                    const rTypeLowerCase = rtype.toLowerCase();\n                    const clientTimeoutMap = initialData._clientPlatformSetting?.clientTimeoutMapInMs;\n                    if (clientTimeoutMap && clientTimeoutMap[rTypeLowerCase]) {\n                        axiosTimeout = clientTimeoutMap[rTypeLowerCase];\n                    } else if (initialData._clientPlatformSetting?.clientSideDataActionTimeoutInMs) {\n                        // @ts-ignore -using client window object\n                        axiosTimeout = initialData._clientPlatformSetting.clientSideDataActionTimeoutInMs;\n                    }\n\n                    if (clientTimeout) {\n                        axiosTimeout = clientTimeout;\n                    }\n                }\n            } else {\n                const serverSideDataActionTimeoutInMs = process.env.serverSideDataActionTimeoutInMs;\n                axiosTimeout =\n                    serverSideDataActionTimeoutInMs && serverSideDataActionTimeoutInMs !== ''\n                        ? Number(serverSideDataActionTimeoutInMs)\n                        : 4000;\n            }\n\n            const pageInsightsData = {\n                Request: {\n                    Headers: request.headers,\n                    Method: request.method,\n                    Body: request.body\n                },\n                Response: {\n                    Headers: {},\n                    Body: {},\n                    StatusText: '',\n                    StatusCode: 0\n                }\n            };\n\n            axios\n                .request({\n                    method: request.method || 'get',\n                    url,\n                    data: request.body,\n                    auth: authenticationCreds,\n                    headers: request.headers || {},\n                    timeout: axiosTimeout,\n                    cancelToken: cancelToken.token\n                })\n                .then(axiosResponse => {\n                    const response = {\n                        requestUri: url,\n                        statusCode: axiosResponse.status,\n                        statusText: axiosResponse.statusText,\n                        headers: axiosResponse.headers,\n                        body: axiosResponse.data\n                    };\n                    done = true;\n\n                    if (isPageInsightsEnabled(callerContext.requestContext.params)) {\n                        pageInsightsData.Response.Body = axiosResponse.data;\n                        pageInsightsData.Response.StatusText = axiosResponse.statusText;\n                        pageInsightsData.Response.StatusCode = axiosResponse.status;\n                        pageInsightsData.Response.Headers = axiosResponse.headers;\n                        const insightsKey: ICacheKey = {\n                            typeName: 'string',\n                            key: '__API_INSIGHTS__'\n                        };\n                        const insightsData = callerContext.requestCache.get(insightsKey)?.item || {};\n                        insightsData[url] = pageInsightsData;\n                        callerContext.requestCache.put(insightsKey, { item: insightsData });\n                    }\n\n                    success(response);\n                })\n                .catch(axiosError => {\n                    const response = {\n                        requestUri: url,\n                        statusCode: axiosError.response ? parseInt(axiosError.response.status, 10) : 0,\n                        statusText: axiosError.name,\n                        body: axiosError.message,\n                        data: axiosError.response ? axiosError.response.data : {},\n                        headers: axiosError.response ? axiosError.response.headers : {}\n                    };\n\n                    if (isPageInsightsEnabled(callerContext.requestContext.params)) {\n                        pageInsightsData.Response.Body = axiosError.response ? axiosError.response.data : {};\n                        pageInsightsData.Response.StatusText = axiosError.name;\n                        pageInsightsData.Response.StatusCode = axiosError.response ? parseInt(axiosError.response.status, 10) : 0;\n                        pageInsightsData.Response.Headers = axiosError.response ? axiosError.response.headers : {};\n                        const insightsKey: ICacheKey = {\n                            typeName: 'string',\n                            key: '__API_INSIGHTS__'\n                        };\n                        const insightsData = callerContext.requestCache.get(insightsKey)?.item || {};\n                        insightsData[url] = pageInsightsData;\n                        callerContext.requestCache.put(insightsKey, { item: insightsData });\n                    }\n\n                    error({ message: 'HTTP request failed', request, response });\n                });\n        } else {\n            error({\n                message: 'Only requests to non-absolute urls are supported at this time without JSONP callback'\n            });\n        }\n        return result;\n    }\n};\n\nconst prepareRequest = (request, handler, context) => {\n    /// <summary>Prepares a request object so that it can be sent through the network.</summary>\n    /// <param name=\"request\">Object that represents the request to be sent.</param>\n    /// <param name=\"handler\">Handler for data serialization</param>\n    /// <param name=\"context\">Context used for preparing the request</param>\n\n    // Default to GET if no method has been specified.\n    if (!request.method) {\n        request.method = 'GET';\n    }\n\n    if (!request.headers) {\n        request.headers = {};\n    } else {\n        normalizeHeaders(request.headers);\n    }\n\n    if (request.headers.Accept === undefined) {\n        request.headers.Accept = handler.accept;\n    }\n\n    if (request.data && request.body === undefined) {\n        handler.write(request, context);\n    }\n\n    if (!request.headers['OData-MaxVersion']) {\n        request.headers['OData-MaxVersion'] = handler.maxDataServiceVersion || '4.0';\n    }\n};\n\nconst invokeRequest = (\n    request,\n    success,\n    error,\n    handler,\n    httpClient,\n    context,\n    returnType: string,\n    clientTimeout?: number,\n    callerContext?: ICallerContext\n) => {\n    /// <summary>Sends a request containing OData payload to a server.</summary>\n    /// <param name=\"request\">Object that represents the request to be sent..</param>\n    /// <param name=\"success\">Callback for a successful read operation.</param>\n    /// <param name=\"error\">Callback for handling errors.</param>\n    /// <param name=\"handler\">Handler for data serialization.</param>\n    /// <param name=\"httpClient\">HTTP client layer.</param>\n    /// <param name=\"context\">Context used for processing the request</param>\n\n    return httpClient.request(\n        request,\n        response => {\n            try {\n                if (response.headers) {\n                    normalizeHeaders(response.headers);\n                }\n\n                if (response.data === undefined && response.statusCode !== 204) {\n                    if (!handler.read(response, context)) {\n                        throw { message: 'Handler could not parse response.' };\n                    }\n                }\n            } catch (err) {\n                if (err.request === undefined) {\n                    err.request = request;\n                }\n                if (err.response === undefined) {\n                    err.response = response;\n                }\n                error(err);\n                return;\n            }\n\n            success(response.data, response);\n        },\n        error,\n        returnType,\n        clientTimeout,\n        callerContext\n    );\n};\n\nexport const isPageInsightsEnabled = (params: IRequestContextParams): boolean => {\n    return params?.pageInsights === 'all' || params?.pageInsights === 'info' || params?.pageInsights === 'error';\n};\n\nexport const ODataHttpRequest = (request, success, error, returnType: string, clientTimeout?: number, callerContext?: ICallerContext) => {\n    /// <summary>Sends a request containing OData payload to a server.</summary>\n    /// <param name=\"request\" type=\"Object\">Object that represents the request to be sent.</param>\n    /// <param name=\"success\" type=\"Function\" optional=\"true\">Callback for a successful read operation.</param>\n    /// <param name=\"error\" type=\"Function\" optional=\"true\">Callback for handling errors.</param>\n    /// <param name=\"handler\" type=\"Object\" optional=\"true\">Handler for data serialization.</param>\n    /// <param name=\"httpClient\" type=\"Object\" optional=\"true\">HTTP client layer.</param>\n    /// <param name=\"metadata\" type=\"Object\" optional=\"true\">Conceptual metadata for this request.</param>\n\n    success = success || (data => process.env.NODE_ENV !== 'production' && console.log(JSON.stringify(data)));\n    error =\n        error ||\n        (err => {\n            throw err;\n        });\n\n    // Augment the request with additional defaults.\n    request.recognizeDates = request.recognizeDates || false;\n    request.useJsonLight = request.useJsonLight || false;\n    request.inferJsonLightFeedAsObject = request.inferJsonLightFeedAsObject || false;\n    request.callbackParameterName = request.callbackParameterName || defaultHttpClient.callbackParameterName;\n    request.formatQueryString = request.formatQueryString || defaultHttpClient.formatQueryString;\n    request.enableJsonpCallback = request.enableJsonpCallback || defaultHttpClient.enableJsonpCallback;\n\n    // Create the base context for read/write operations, also specifying complete settings.\n    const context = {\n        recognizeDates: request.recognizeDates,\n        callbackParameterName: request.callbackParameterName,\n        formatQueryString: request.formatQueryString,\n        enableJsonpCallback: request.enableJsonpCallback,\n        useJsonLight: request.useJsonLight,\n        inferJsonLightFeedAsObject: request.inferJsonLightFeedAsObject\n    };\n\n    try {\n        prepareRequest(request, jsonHandler, context);\n        return invokeRequest(request, success, error, jsonHandler, defaultHttpClient, context, returnType, clientTimeout, callerContext);\n    } catch (err) {\n        error(err);\n    }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport const MAX_DATA_SERVICE_VERSION = '4.0';\nexport const jsonMediaType = 'application/json';\n\nconst CONTENT_TYPE_HEADER_NAME = 'Content-Type';\nconst ODATA_VERSION = 'OData-Version';\nconst ODATA_MAX_VERSION = 'OData-MaxVersion';\n\nconst contentType = str => {\n    /// <summary>Parses a string into an object with media type and properties.</summary>\n    /// <param name=\"str\" type=\"String\">String with media type to parse.</param>\n    /// <returns>null if the string is empty; an object with 'mediaType' and a 'properties' dictionary otherwise.</returns>\n\n    if (!str) {\n        return null;\n    }\n\n    const contentTypeParts = str.split(';');\n    const properties = {};\n\n    let i;\n    let len;\n    for (i = 1, len = contentTypeParts.length; i < len; i++) {\n        const contentTypeParams = contentTypeParts[i].split('=');\n        properties[contentTypeParams[0].trim()] = contentTypeParams[1];\n    }\n\n    return { mediaType: contentTypeParts[0].trim(), properties };\n};\n\nexport const jsonContentType = contentType(jsonMediaType);\n\nconst contentTypeToString = contentTypeObj => {\n    /// <summary>Serializes an object with media type and properties dictionary into a string.</summary>\n    /// <param name=\"contentType\">Object with media type and properties dictionary to serialize.</param>\n    /// <returns>String representation of the media type object; undefined if contentType is null or undefined.</returns>\n\n    if (!contentTypeObj) {\n        return undefined;\n    }\n\n    let result = contentTypeObj.mediaType;\n    for (const property in contentTypeObj.properties) {\n        if (contentTypeObj.properties.hasOwnProperty(property)) {\n            result += ';' + property + '=' + contentTypeObj.properties[property];\n        }\n    }\n    return result;\n};\n\nconst createReadWriteContext = (contentTypeStr, dataServiceVersion, context, handler) => {\n    /// <summary>Creates an object that is going to be used as the context for the handler's parser and serializer.</summary>\n    /// <param name=\"contentType\">Object with media type and properties dictionary.</param>\n    /// <param name=\"dataServiceVersion\" type=\"String\">String indicating the version of the protocol to use.</param>\n    /// <param name=\"context\">Operation context.</param>\n    /// <param name=\"handler\">Handler object that is processing a resquest or response.</param>\n    /// <returns>Context object.</returns>\n\n    // First create a clone\n    const rwContext = { ...context };\n\n    // And then override with provided parameters\n    rwContext['contentType'] = contentTypeStr || jsonContentType;\n    rwContext['dataServiceVersion'] = dataServiceVersion;\n    rwContext['handler'] = handler;\n\n    return rwContext;\n};\n\nconst versionRE = /^\\s?(\\d+\\.\\d+);?.*$/;\nconst getDataServiceVersion = headerVersion => {\n    /// <summary>Gets the value of the OData-Version header from a request or response.</summary>\n    /// <param name=\"requestOrResponse\">Object representing a request or a response.</param>\n    /// <returns type=\"String\">Data service version; undefined if the header cannot be found.</returns>\n\n    if (headerVersion) {\n        const matches = versionRE.exec(headerVersion);\n        if (matches && matches.length) {\n            return matches[1];\n        }\n    }\n};\n\nconst handlerRead = (handler, response, context) => {\n    /// <summary>Invokes the parser associated with a handler for reading the payload of a HTTP response.</summary>\n    /// <param name=\"handler\">Handler object that is processing the response.</param>\n    /// <param name=\"parseCallback\" type=\"Function\">Parser function that will process the response payload.</param>\n    /// <param name=\"response\">HTTP response whose payload is going to be processed.</param>\n    /// <param name=\"context\">Object used as the context for processing the response.</param>\n    /// <returns type=\"Boolean\">True if the handler processed the response payload and the response.data property was set; false otherwise.</returns>\n\n    if (!response || !response.headers) {\n        return false;\n    }\n\n    const cType = contentType(response.headers[CONTENT_TYPE_HEADER_NAME]);\n    const version = getDataServiceVersion(response) || '';\n    const body = response.body;\n\n    if (!body) {\n        return false;\n    }\n\n    if (jsonMediaType.indexOf(cType.mediaType) >= 0) {\n        const readContext = createReadWriteContext(cType, version, context, handler);\n        readContext.response = response;\n        response.data = typeof body === 'string' ? JSON.parse(body) : body;\n        return response.data !== undefined;\n    }\n\n    return false;\n};\n\nconst maxVersion = (left, right) => {\n    /// <summary>Compares to version strings and returns the higher one.</summary>\n    /// <param name=\"left\" type=\"String\">Version string in the form \"major.minor.rev\"</param>\n    /// <param name=\"right\" type=\"String\">Version string in the form \"major.minor.rev\"</param>\n    /// <returns type=\"String\">The higher version string.</returns>\n\n    if (left === right) {\n        return left;\n    }\n\n    const leftParts = left.split('.');\n    const rightParts = right.split('.');\n\n    const len = leftParts.length >= rightParts.length ? leftParts.length : rightParts.length;\n\n    for (let i = 0; i < len; i++) {\n        const leftVersion = leftParts[i] && parseInt(leftParts[i], 10);\n        const rightVersion = rightParts[i] && parseInt(rightParts[i], 10);\n        if (leftVersion > rightVersion) {\n            return left;\n        }\n        if (leftVersion < rightVersion) {\n            return right;\n        }\n    }\n};\n\nconst handlerWrite = (handler, request, context) => {\n    /// <summary>Invokes the serializer associated with a handler for generating the payload of a HTTP request.</summary>\n    /// <param name=\"handler\">Handler object that is processing the request.</param>\n    /// <param name=\"serializeCallback\" type=\"Function\">Serializer function that will generate the request payload.</param>\n    /// <param name=\"response\">HTTP request whose payload is going to be generated.</param>\n    /// <param name=\"context\">Object used as the context for serializing the request.</param>\n    /// <returns type=\"Boolean\">True if the handler serialized the request payload and the request.body property was set; false otherwise.</returns>\n    if (!request || !request.headers) {\n        return false;\n    }\n\n    const cType = contentType(request.headers[CONTENT_TYPE_HEADER_NAME]);\n    const version = getDataServiceVersion(request.headers[ODATA_VERSION]);\n\n    if (!cType || jsonMediaType.indexOf(cType.mediaType)) {\n        const writeContext = createReadWriteContext(cType, version, context, handler);\n        writeContext.request = request;\n        request.body = request.data;\n\n        if (request.body !== undefined) {\n            request.headers[ODATA_VERSION] = version ? maxVersion(version, '4.0') : '4.0';\n            request.headers.ContentType = request.headers[CONTENT_TYPE_HEADER_NAME] || contentTypeToString(writeContext.contentType);\n            request.headers[ODATA_MAX_VERSION] = request.headers[ODATA_MAX_VERSION] || handler.maxDataServiceVersion;\n            return true;\n        }\n    }\n\n    return false;\n};\n\nexport const jsonHandler = {\n    accept: jsonMediaType,\n    maxDataServiceVersion: MAX_DATA_SERVICE_VERSION,\n    read(response, context) {\n        return handlerRead(this, response, context);\n    },\n\n    write(request, context) {\n        return handlerWrite(this, request, context);\n    }\n};\n","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { Recommendation, RecommendationCriteria, RecommendedElement } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function recommendationsQuery(id?: string): DataServiceQuery {\n        var key = (id) ? { Id: id } : null;\n        return new DataServiceQuery(\"Recommendations\", \"Recommendation\", \"RecommendationClass\", key);\n    }\n    \n    export function createCreateInput(entity: Recommendation): IDataServiceRequest {\n        return recommendationsQuery().create(entity);\n    }\n\n    export function createRecommendationAsync(context: IContext, entity: Recommendation): AsyncResult<Recommendation> {\n        const request = createCreateInput(entity);\n        return executeAction<Recommendation>(request, context);\n    }\n\n    export function createUpdateInput(entity: Recommendation): IDataServiceRequest {\n        return recommendationsQuery(entity.Id).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: Recommendation): AsyncResult<Recommendation> {\n        const request = createUpdateInput(entity);\n        return executeAction<Recommendation>(request, context);\n    }\n\n    export function createDeleteAsync(entity: Recommendation): IDataServiceRequest {\n        return recommendationsQuery(entity.Id).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: Recommendation): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(id: string): IDataServiceRequest {\n        return recommendationsQuery(id).read();\n    }\n\n    export function readAsync(context: IContext, id: string): AsyncResult<Recommendation> {\n        const request = createReadAsync(id);\n        return executeAction<Recommendation>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return recommendationsQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<Recommendation[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<Recommendation[]>(request, context);\n    }\n    \n    export function createGetElementsInput(queryResultSettings: IQueryResultSettings, id: string, recommendationCriteria?: RecommendationCriteria | null): IDataServiceRequest {      \n        const query = recommendationsQuery(id).resultSettings(queryResultSettings);\n        return query.createDataServiceRequestForOperation('GetElements', true, \n             'RecommendedElementClass'\n          , 'true', {bypassCache: 'none', returnEntity: 'RecommendedElement'}, {recommendationCriteria: recommendationCriteria });\n    }    \n    \n    export function getElementsAsync(context: IContext, id: string, recommendationCriteria?: RecommendationCriteria | null):AsyncResult<RecommendedElement[]> {\n        const request = createGetElementsInput(context.queryResultSettings, id, recommendationCriteria);\n        return executeAction<RecommendedElement[]>(request, context);\n    }          \n          \n    ","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n  byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n  var i = offset || 0;\n  var bth = byteToHex;\n  // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n  return ([\n    bth[buf[i++]], bth[buf[i++]],\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]],\n    bth[buf[i++]], bth[buf[i++]],\n    bth[buf[i++]], bth[buf[i++]]\n  ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n  if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport type CacheType = 'none' | 'instance' | 'application' | 'request';\n\n/**\n * BypassCache type.\n */\nexport type BypassCache = 'none' | 'get' | 'put' | 'getAndPut';\n\nexport enum ICacheSource {\n    RequestCache,\n    AppCache\n}\n\nexport interface ICacheKey {\n    key: string;\n    typeName: string;\n}\n\nexport interface ICacheItem<T> {\n    item: T;\n    cacheType?: CacheType;\n    shouldRefresh?: boolean;\n    error?: boolean;\n    s?: ICacheSource;\n}\n\n/**\n * Interface exposing methods for caching\n */\nexport interface ICache {\n    /**\n     * @function        {put}           - Method to insert an item in the cache\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @param cacheItem {ICacheItem}    - item that needs to be inserted in the cache\n     */\n    put<T = unknown>(cacheKey: ICacheKey, item: ICacheItem<T>): boolean;\n\n    /**\n     * @function        {get}           - Method to get the cached item\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @return          {ICacheItem}    - cached value against the given cache key\n     */\n    get<T = unknown>(cacheKey: ICacheKey): ICacheItem<T> | undefined;\n\n    /**\n     * @function        {getValue}      - Method to get the cached item\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @return          {T}             - cached value against the given cache key\n     */\n    getValue<T = unknown>(cacheKey: ICacheKey): T | undefined;\n\n    /**\n     * @function        {getAllItems}   - Method to get all cached items for a given type\n     * @param typeName  {typeName}      - typeName for which all items need to be fetched\n     * @return          {ICacheItem}    - dictionary of cache items of the given typeName\n     */\n    getAllItems<T = unknown>(typeName: string): { [cacheKey: string]: ICacheItem<T> } | undefined;\n\n    /**\n     * @param cacheKey  {ICacheKey}     - object to build the cache key\n     * @param toCache   {ICache}        - cache object to which the item needs to be copied\n     * @return          {ICacheItem}    - cache item that was copied\n     */\n    copyTo<T = unknown>(cacheKey: ICacheKey, toCache: ICache): ICacheItem<T> | undefined;\n\n    /**\n     * @function    {del}               - Method to delete an item from the cache\n     * @param key   {ICacheKey[]}       - Array of ICacheGetData items whose values need to be deleted from cache\n     * @return      {number}            - returns true if the cache key is deleted successfully. Does not throw errors.\n     */\n    del(cacheKey: ICacheKey): boolean;\n\n    /**\n     * @function    {flushAll}          - Method to flush all data from the cache\n     */\n    flushAll(): void;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-var-requires */\nimport { toJS } from 'mobx';\n\nimport { ApiVersion, EntityIdentifier, SortColumn } from './Entities/CommerceTypes.g';\n\nimport {\n    BypassCache,\n    CacheType,\n    ICallerContext,\n    IDataServiceQueryInternal,\n    IDataServiceRequest,\n    IDictionary,\n    IPartialCookieContext\n} from './Interfaces';\nimport {\n    modelManagersRetailServerRequestError,\n    modelManagersRetailServerRequestFinished,\n    modelManagersRetailServerRequestStarted,\n    Tracer,\n    Utils\n} from './logging';\n\nimport { ProxyError } from './exceptions';\nimport { ErrorParser } from './exceptions/ErrorParser';\nimport {\n    convertToString,\n    EMPTY,\n    format,\n    hasElements,\n    isEmpty,\n    isNullOrWhitespace,\n    isObjectNotEmptyOrNull\n} from './extensions/StringExtensions';\n\nimport { IODataRequest, ODataHttpRequest } from './externals/DataJS.New';\nexport const ODATA_HAS_NEXT_PAGE_PROPERTY = '@odata.nextLink';\nexport const GET: string = 'GET';\nexport const POST: string = 'POST';\nexport const PATCH: string = 'PATCH';\nexport const DELETE: string = 'DELETE';\nexport const GET_FROM_RETURNIDENTIFIER: string = '___GET__FROM__RETURNIDENTIIER___';\nexport const ODATA_TOTAL_COUNT_PROPERTY = '@odata.count';\n\nlet serverWorkerNotUpdated = false;\nconst ApiTimeoutInMilliSecond = 10000;\nconst OPERATINGUNITNUMBER_HEADERNAME = 'OUN';\nconst AUTHORIZATION_HEADERNAME = 'Authorization';\nconst ACCEPT_LANGUAGE = 'Accept-Language';\nconst REQUEST_ID = 'RequestId';\nconst APPSESSION_ID = 'AppSessionId';\nconst USERSESSION_ID = 'UserSessionId';\nconst DEFAULT_HEADER: { [headerName: string]: string } = {\n    Prefer: 'return=representation'\n};\nconst OBO_REQUEST = 'isOBORequest';\nconst GET_ACCOUNT_SELECTION_COOKIE = 'getAccountSelectionCookie';\nconst CUSTOMER_ACCOUNT_NUMBER = 'CAN';\n\nconst fetchCommerceModels = async () => {\n    return import('./Entities/CommerceModels.g');\n};\n\nconst isServiceWorkerSupportedOnClient = () => {\n    return typeof navigator !== 'undefined' && 'serviceWorker' in navigator;\n};\n\nconst shouldSkipSerializationFromSW = (initialData: any, resultType: any) => {\n    if (process.env.NODE_ENV === 'test' || process.env.DEPLOYMENT_ENV !== 'WEBAPP') {\n        return true;\n    }\n\n    if (!initialData || !initialData.requestContext || !initialData.requestContext.features.enable_service_worker) {\n        console.log('service worker turned off, skipping sw serialization');\n        return true;\n    }\n\n    if (typeof resultType !== 'string') {\n        return true;\n    }\n\n    // service worker could be old or pending update version\n    if (serverWorkerNotUpdated) {\n        return true;\n    }\n\n    if (isServiceWorkerSupportedOnClient()) {\n        return initialData.requestContext.features.disableRetailProxySW || initialData.requestContext.query['skip-rp-sw'];\n    }\n\n    return false;\n};\n\nconst initServerWorker = async () => {\n    if (process.env.CURRENT_ENVIRONMENT !== 'node') {\n        if (isServiceWorkerSupportedOnClient()) {\n            const serviceWorker = await navigator.serviceWorker.ready;\n            return serviceWorker;\n        }\n    }\n};\n\n/***\n * Parses the odata result returned from server.\n *\n * @param {any} data The result returned from server.\n * @param {any} resultType The entity type to parse the result as.\n */\nexport const parseOdataResult = async (data: any, resultType: any): Promise<any> => {\n    let serviceWorker;\n    let Models;\n    const initialData = typeof window !== 'undefined' && (window as any).___initialData___;\n    const skipSerializationFromSW = shouldSkipSerializationFromSW(initialData, resultType);\n\n    if (!skipSerializationFromSW) {\n        serviceWorker = await initServerWorker();\n    } else {\n        // If service workder is skipped, load the commerce models object dynamically\n        Models = await fetchCommerceModels();\n    }\n\n    if (!data) {\n        return data;\n    }\n\n    if (!data.value) {\n        if (typeof resultType === 'string') {\n            if (process.env.CURRENT_ENVIRONMENT === 'node') {\n                Models = require('./Entities/CommerceModels.g');\n                return resultType ? new Models[resultType](data) : data;\n            } else if (skipSerializationFromSW) {\n                return resultType && Models[resultType] ? new Models[resultType](data) : data;\n            } else {\n                if (!resultType) {\n                    return data;\n                }\n\n                return getSerializedResponseFromServiceWorker(serviceWorker, resultType, data);\n            }\n        }\n\n        return resultType ? new resultType(data) : data;\n    }\n\n    let resultSet = data.value;\n\n    if (resultType) {\n        if (Object.prototype.toString.call(resultSet) === '[object Array]') {\n            if (typeof resultType === 'string') {\n                // Include commercemodels in the bundle in the context of node only\n                if (process.env.CURRENT_ENVIRONMENT === 'node') {\n                    Models = require('./Entities/CommerceModels.g');\n                    for (let i = 0; i < resultSet.length; i++) {\n                        resultSet[i] = new Models[resultType](resultSet[i]);\n                    }\n                } else if (skipSerializationFromSW) {\n                    for (let i = 0; i < resultSet.length; i++) {\n                        resultSet[i] = new Models[resultType](resultSet[i]);\n                    }\n                } else {\n                    resultSet = await getSerializedResponseFromServiceWorker(serviceWorker, resultType, resultSet);\n                }\n            } else {\n                for (let i = 0; i < resultSet.length; i++) {\n                    resultSet[i] = new resultType(resultSet[i]);\n                }\n            }\n        }\n    }\n\n    // hasNextPage only apply to array which is typeof 'object'\n    typeof resultSet === 'object' ? (resultSet.hasNextPage = !(data[ODATA_HAS_NEXT_PAGE_PROPERTY] === undefined)) : null;\n    return resultSet;\n};\n\n/**\n * @param serviceWorker serviceWorker instance\n * @param resultType CommerceModels type\n * @param data retail serve response to be serialized\n * @returns serialized CommerceModels object\n */\nconst getSerializedResponseFromServiceWorker = (serviceWorker: any, resultType: any, data: any | any[]) => {\n    // Import commerce modesl dynamically and serialize, in case if the serialization response is not received\n    // from service worker in time\n    let timerId;\n    const dynamicImportPromise = new Promise((resolve, reject) => {\n        timerId = setTimeout(async () => {\n            const Models = await fetchCommerceModels();\n            serverWorkerNotUpdated = true;\n            if (Array.isArray(data)) {\n                for (let i = 0; i < data.length; i++) {\n                    data[i] = resultType && Models[resultType] ? new Models[resultType](data[i]) : data[i];\n                }\n\n                resolve(data);\n            } else {\n                resolve(resultType && Models[resultType] ? new Models[resultType](data) : data);\n            }\n        }, 2000);\n    });\n\n    const serializePromise = new Promise((resolve, reject) => {\n        const messageChannel = new MessageChannel();\n\n        messageChannel.port1.onmessage = e => {\n            resolve(e.data.serializedData);\n            clearTimeout(timerId);\n        };\n\n        serviceWorker.active.postMessage(\n            {\n                type: 'SERIALIZE_DATA',\n                resultType,\n                payload: data\n            },\n            [messageChannel.port2]\n        );\n    });\n\n    return Promise.race([serializePromise, dynamicImportPromise]);\n};\n\n/**\n * Represents a data service request object.\n */\nexport class DataServiceRequest implements IDataServiceRequest {\n    private get batchRequestUri(): string {\n        return this._callerContext.requestContext.apiSettings.baseUrl + '/$batch';\n    }\n\n    /**\n     * Gets Locale for the current data service factory instance.\n     */\n    public get locale(): string {\n        return this._callerContext.requestContext.locale;\n    }\n\n    /**\n     * Sets Locale for the current data service factory instance.\n     */\n    public set locale(locale: string) {\n        this._callerContext.requestContext.locale = locale;\n    }\n\n    /**\n     * get cacheKeyFromInput.\n     */\n    public get cacheKeyFromInput(): string {\n        return this._cacheKeyFromInput;\n    }\n\n    /**\n     * get cacheKeyIdentifierFromReturnType.\n     */\n    public get cacheKeyIdentifierFromReturnType(): string {\n        return this._cacheKeyIdentifierFromReturnType;\n    }\n\n    /**\n     * get cacheObjectType.\n     */\n    public get cacheObjectType(): string {\n        return this._cacheObjectType;\n    }\n\n    /**\n     * get cacheKeyFromReturnType.\n     */\n    public get cacheKeyFromReturnType(): string[] {\n        return this._cacheKeyFromReturnType;\n    }\n\n    /**\n     * get totalCount.\n     */\n    public get totalCount(): number {\n        return this._totalCount;\n    }\n\n    /**\n     * get query.\n     */\n    public get query(): IDataServiceQueryInternal {\n        return this._query;\n    }\n\n    /**\n     * Gets query parameters for data service request.\n     */\n    public queryParams<T>(): T {\n        return this._query.data.parameters as T;\n    }\n\n    /**\n     * Gets Odata properties\n     */\n    public get otherOdataProperties(): IDictionary<string> {\n        return this._otherOdata;\n    }\n\n    private _actionId: string;\n    private _cacheObjectType: string;\n    private _cacheKeyFromInput: string;\n    private _cacheKeyFromReturnType: string[] = [];\n    private _cacheKeyIdentifierFromReturnType: string;\n\n    private _query: IDataServiceQueryInternal;\n    private _callerContext: ICallerContext;\n    private _requestUri: string;\n    private _method: string;\n    private _id: number;\n    private _hasOperationName: boolean;\n    private _totalCount: number;\n    private _otherOdata: IDictionary<string>;\n    private _clientTimeoutInMs?: number;\n\n    private static buildBatchRequest(batchRequestUri: string, requests: DataServiceRequest[]): IODataRequest {\n        let requestId = 1;\n\n        // Creates an empty batch request.\n        const odataBatchRequest: IODataRequest = {\n            requestUri: batchRequestUri,\n            method: POST,\n            data: { __batchRequests: [] }\n        };\n\n        const batchRequests = odataBatchRequest.data.__batchRequests;\n        let changeRequests: IODataRequest[];\n\n        requests.forEach(request => {\n            request._id = requestId++;\n\n            const odataRequest: IODataRequest = {\n                requestUri: request._requestUri,\n                method: request._method,\n                data: DataServiceRequest.toJson(request._query.data),\n                headers: { 'Content-ID': request.id(), Prefer: 'return=representation' }\n            };\n\n            if (request._method === GET) {\n                batchRequests.push(odataRequest);\n            } else {\n                if (!changeRequests) {\n                    changeRequests = [];\n                    batchRequests.push({ __changeRequests: changeRequests });\n                }\n                changeRequests.push(odataRequest);\n            }\n        });\n\n        return odataBatchRequest;\n    }\n\n    /**\n     * Parse the batch responses.\n     * @param {any[]} batchResponses The server responses.\n     * @param {any[]} requests The request objects.\n     * @param {any[]} responses The responses passed down to the success callback.\n     */\n    private static parseBatchResponses = async (\n        batchResponses: any[],\n        requests: any[],\n        responses: any[],\n        callerContext?: ICallerContext\n    ): Promise<ProxyError[]> => {\n        let errors: ProxyError[] = new Array();\n\n        batchResponses.map(async response => {\n            if (response.__changeResponses) {\n                errors = errors.concat(\n                    await DataServiceRequest.parseBatchResponses(response.__changeResponses, requests, responses, callerContext)\n                );\n            } else {\n                if (!response.message) {\n                    const requestId = parseInt(response.headers['Content-ID'], 10);\n\n                    responses[requestId] = await parseOdataResult(response.data, requests[requestId - 1]._query.returnType);\n                } else {\n                    errors = errors.concat(ErrorParser.parseErrorMessage(response, callerContext));\n                }\n            }\n        });\n\n        return errors;\n    };\n\n    /**\n     * TODO - check if below function can be replaced with JSON.stringify.\n     * Helper function to convert data into a stringified JSON object.\n     * @param {any} parent The container of the element.\n     * @param {any} data The data to be converted to a stringified JSON object.\n     * @param {boolean} [modifyDataInPlace] Whether the object passed should be modified in place. If not, a clone is created instead.\n     */\n    private static toJson(data: any, parent?: any, modifyDataInPlace?: boolean): string {\n        let clone = data;\n\n        if (data === null) {\n            return null;\n        } else if (typeof data !== 'object') {\n            // if data type is primitive type, no need to process further\n            // as calling jquery extend or calling foreach prop on string type\n            // will transform string to array of chars which will be incorrect result.\n            return data;\n        }\n\n        if (data && data.parameters) {\n            data = data.parameters;\n            parent = null;\n        } else {\n            parent = data;\n        }\n\n        // clones the data object instead of changing it, if no modifications in place\n        if (!modifyDataInPlace) {\n            clone = { ...data };\n        }\n\n        for (const prop in clone) {\n            if (clone.hasOwnProperty(prop)) {\n                const property = clone[prop];\n\n                // only non-undefined properties are added to the object\n                if (typeof property !== 'undefined') {\n                    let value;\n                    if (property === null) {\n                        value = null;\n                    } else if (typeof property === 'object') {\n                        if (property instanceof Array) {\n                            value = DataServiceRequest.arrayToJson(property, parent, modifyDataInPlace);\n                        } else if (property instanceof Date) {\n                            value = DataServiceRequest.toDateTimeOffset(property);\n                        } else {\n                            // recursively stringifies objects\n                            value = DataServiceRequest.toJson(property, clone, modifyDataInPlace);\n                        }\n                    } else {\n                        value = property;\n                    }\n\n                    clone[prop] = value;\n                }\n            }\n        }\n\n        return clone;\n    }\n\n    /**\n     * Helper function to convert array into a stringified JSON object following OData specifications.\n     * @param {Array} array The data to be converted to a stringified JSON object.\n     * @param {any} parent The container of the array.\n     * @param {boolean} [modifyDataInPlace] Whether the object passed should be modified in place. If not, a clone is created instead.\n     */\n    private static arrayToJson(array: any[], parent: any, modifyDataInPlace?: boolean): any {\n        const data = [];\n        for (let i = 0; i < array.length; i++) {\n            data[i] = DataServiceRequest.toJson(array[i], array, modifyDataInPlace);\n        }\n\n        // if array is not a top level data on an action\n        return data;\n    }\n\n    /**\n     * Add offset fields to Date object for serialization purposes.\n     * @param {Date} dateTime The date.\n     * @return {Date} The date with __edmType and __offset fields injected.\n     */\n    private static toDateTimeOffset(dateTime: Date): Date {\n        if (!(dateTime as any).__edmType || !(dateTime as any).__offset) {\n            const pad: (val: number) => string = (val: number) => (val < 10 ? '0' + val : val.toString());\n            const sign: string = dateTime.getTimezoneOffset() > 0 ? '-' : '+';\n            const offset: number = Math.abs(dateTime.getTimezoneOffset());\n            const hours: string = pad(Math.floor(offset / 60));\n            const minutes: string = pad(offset % 60);\n\n            (dateTime as any).__edmType = 'Edm.DateTimeOffset';\n            (dateTime as any).__offset = sign + hours + ':' + minutes;\n        }\n\n        return dateTime;\n    }\n\n    /**\n     * Formats entity key(s) in request Uri.\n     * @param {any} key The key dictionary.\n     * @return {string} The formated string of the key(s).\n     */\n    private static formatKey(key: any): string {\n        let result: string = EMPTY;\n\n        if (key) {\n            const formattedKey = [];\n            let propertyName: string = EMPTY;\n\n            for (const property in key) {\n                if (key.hasOwnProperty(property)) {\n                    propertyName = property;\n                    if (typeof key[propertyName] === 'string') {\n                        formattedKey.push(propertyName + `='${key[propertyName]}'`);\n                    } else {\n                        formattedKey.push(propertyName + '=' + key[propertyName]);\n                    }\n                }\n            }\n\n            if (formattedKey.length === 1) {\n                if (typeof key[propertyName] === 'string') {\n                    result = `'${key[propertyName]}'`;\n                } else {\n                    result = key[propertyName];\n                }\n            } else {\n                result = formattedKey.join();\n            }\n        }\n\n        return result;\n    }\n\n    /**\n     * Formats function parameters in request Uri.\n     * @param {any} parameters The parameter dictionary.\n     * @return {string} The formated and encoded string of the parameters.\n     */\n    private static formatFunctionParameter(parameters: any): string {\n        let result: string = EMPTY;\n\n        if (parameters) {\n            for (const parameter in parameters) {\n                if (parameters.hasOwnProperty(parameter)) {\n                    const paramValue = parameters[parameter];\n\n                    if (!isEmpty(result)) {\n                        result += ',';\n                    }\n\n                    if (paramValue === undefined) {\n                        // handles undefined value\n                        continue;\n                    } else if (typeof paramValue === 'string') {\n                        // handles string type value\n                        result += parameter + `='${encodeURIComponent(paramValue)}'`;\n                    } else {\n                        // handles null and other types value\n                        result += parameter + '=' + encodeURIComponent(paramValue);\n                    }\n                }\n            }\n        }\n\n        return result;\n    }\n\n    // TODO - use node url api for url parsing\n    private static addParameter(requestUri: string, key: string, value: any): string {\n        if (value) {\n            let parameterSeparator = '?';\n\n            if (requestUri.indexOf(parameterSeparator) > 0) {\n                parameterSeparator = '&';\n            }\n\n            return requestUri + parameterSeparator + key + '=' + value;\n        } else {\n            return requestUri;\n        }\n    }\n\n    private static getActionIdFromInput(query: IDataServiceQueryInternal) {\n        return `@msdyn365-commerce/retail-proxy/${query.entitySet}/${query.action}`;\n    }\n\n    private static getCacheObjectValueFromReturnType(returnType: any): string {\n        // return type can be actual class itself like CategoryClass instead of string 'CategoryClass'\n        const cacheObjectTypeValue = typeof returnType === 'function' ? returnType.name : returnType;\n        return cacheObjectTypeValue.replace('Class', '');\n    }\n\n    private static buildCacheFromInput(query: IDataServiceQueryInternal, cacheKeyIdentifierFromReturnType: string): string {\n        // TODO if return type have distinct primary key (and not a collection), cache key for action will be computed primary key\n\n        let cacheKey = {};\n        // if query have key like { RecordId: 56873008 }\n        query.key && (cacheKey = { ...query.key });\n        // parameters are input to function like query.createDataServiceRequestForOperation('GetCategories', true, CategoryClass, 'true', { channelId })\n        //     => {channelId} is parameters.\n        query.data && query.data.parameters && (cacheKey = { ...cacheKey, ...(query.data.parameters as {}) });\n        query.resultSettings &&\n            (cacheKey = {\n                ...cacheKey,\n                ...query.resultSettings.Paging,\n                ...query.resultSettings.Sorting\n            });\n        query.filterSettings && (cacheKey['filter'] = query.filterSettings);\n        isObjectNotEmptyOrNull(query.tokens) && (cacheKey['token'] = query.tokens);\n        // TODO - add OUN in cache key\n        const cacheKeyValue =\n            convertToString(cacheKey) ||\n            (cacheKeyIdentifierFromReturnType ? GET_FROM_RETURNIDENTIFIER : `${query.entitySet}|${query.entityType}|NOKEY`);\n        Tracer.Information(`{CacheKey - CacheValue} : ${cacheKey} - ${cacheKeyValue}`);\n        return cacheKeyValue;\n    }\n\n    private static getDataCacheType(query: IDataServiceQueryInternal): CacheType {\n        // cache all result in request cacheisObjectNotEmptyOrNull\n        //\n        // Follow following rule for app cache\n        // -------------------------------------------------------------------------------------\n        //        scenario                                 app cache\n        // -------------------------------------------------------------------------------------\n        // 1. if returnType is  -                             true\n        //          a. Category\n        //          b. Product\n        //          c. OrgUnit\n        //          d. ProductCatalog\n        //          e. Warehouse\n        if (query.entitySet === 'Carts' && query.action === 'GetMaxLoyaltyPointsToRedeemForTransactionBalance') {\n            return 'none';\n        }\n\n        return query.options.bypassCache === 'get' || query.options.bypassCache === 'getAndPut' ? 'none' : 'request';\n    }\n\n    constructor(query: IDataServiceQueryInternal) {\n        Tracer.Information('DataServiceRequest.constructor()');\n        this._query = toJS(query, { recurseEverything: true });\n        this._hasOperationName = false;\n\n        switch (query.action) {\n            case 'Read':\n            case 'ReadAll':\n                this._method = GET;\n                break;\n\n            case 'Create':\n                this._method = POST;\n                break;\n\n            case 'Update':\n                this._method = PATCH;\n                break;\n\n            case 'Delete':\n                this._method = DELETE;\n                break;\n\n            default:\n                if (query.isAction) {\n                    // Sets the HTTP method to be POST for actions\n                    this._method = POST;\n                } else {\n                    // Sets the HTTP method to be GET for functions\n                    this._method = GET;\n                }\n\n                this._hasOperationName = true;\n        }\n\n        this._actionId = DataServiceRequest.getActionIdFromInput(query);\n\n        this._cacheObjectType = DataServiceRequest.getCacheObjectValueFromReturnType(query.options.returnEntity);\n        // TODO - handle Key when it is array like SHIFT case\n        const entityIdentifier = this._cacheObjectType === 'SimpleProduct' ? 'Product' : this._cacheObjectType;\n        this._cacheKeyIdentifierFromReturnType = EntityIdentifier[entityIdentifier] && EntityIdentifier[entityIdentifier].Key;\n\n        this._cacheKeyFromInput = DataServiceRequest.buildCacheFromInput(this._query, this._cacheKeyIdentifierFromReturnType);\n    }\n\n    /**\n     * Gets the Request Identifier.\n     * Auto-generated unique identifier if executed in batch. Used to fetch the response from batch result array.\n     */\n    public id(): number {\n        return this._id;\n    }\n\n    public getActionId = () => this._actionId;\n\n    public getCacheObjectType = () => this._cacheObjectType;\n\n    public getCacheKey = () => this._cacheKeyFromInput;\n\n    public dataCacheType = () => DataServiceRequest.getDataCacheType(this._query);\n\n    public shouldCacheOutput = () => true;\n\n    public overrideCacheType = (bypassCache: BypassCache) => {\n        bypassCache && (this._query.options.bypassCache = bypassCache);\n    };\n\n    public setClientTimeoutInMs = (timeout: number) => {\n        this._clientTimeoutInMs = timeout;\n    };\n\n    /**\n     * Executes the request.\n     * @param {any} callerContext The caller context.\n     * @return {IAsyncResult<T>} The async result.\n     */\n    public execute<T>(callerContext: ICallerContext): Promise<T> {\n        if (\n            !callerContext.requestContext ||\n            !callerContext.requestContext.apiSettings ||\n            !callerContext.requestContext.apiSettings.oun ||\n            !callerContext.requestContext.apiSettings.baseUrl\n        ) {\n            throw new Error(`CallerContext missing required request parameters - [${JSON.stringify(callerContext.requestContext)}]`);\n        }\n\n        if (!callerContext.requestContext.locale) {\n            throw new Error(`CallerContext missing locale - [${JSON.stringify(callerContext.requestContext)}]`);\n        }\n\n        this._callerContext = callerContext;\n        this._requestUri = this.getRequestUri();\n        let result: Promise<T>;\n        const headers: { [headerName: string]: string } = this.buildQueryHeader();\n\n        if (\n            !this._query.isReturnTypeACollection ||\n            (this._query.resultSettings &&\n                this._query.resultSettings.Paging &&\n                this._query.resultSettings.Paging.Top &&\n                this._query.resultSettings.Paging.Top >= 0)\n        ) {\n            result = this.loadPage<T>(headers);\n        } else {\n            result = this.getAllPages<T>(headers, 0);\n        }\n\n        return result;\n    }\n\n    // Need to build batch handler ----------- PENDING\n    /**\n     * Executes the batch requests.\n     * @param {DataServiceRequest[]} requests The collection of requests to execute.\n     * @param {any} [callerContext] The caller context.\n     * @return {IAsyncResult<Array>} The async result.  Responses at index I correlates to request with identifier I.\n     */\n    public executeBatch(requests: DataServiceRequest[], callerContext?: ICallerContext): Promise<any[]> {\n        if (\n            !callerContext.requestContext ||\n            !callerContext.requestContext.apiSettings ||\n            !callerContext.requestContext.apiSettings.oun ||\n            !callerContext.requestContext.apiSettings.baseUrl\n        ) {\n            throw new Error(`CallerContext missing required request parameters - [${JSON.stringify(callerContext.requestContext)}]`);\n        }\n\n        if (!callerContext.requestContext.locale) {\n            throw new Error(`CallerContext missing locale - [${JSON.stringify(callerContext.requestContext)}]`);\n        }\n\n        this._callerContext = callerContext;\n        this._requestUri = this.getRequestUri();\n\n        return new Promise((resolve, reject) => {\n            ODataHttpRequest(\n                DataServiceRequest.buildBatchRequest(this.batchRequestUri, requests),\n                (data: any) => {\n                    const responses: any[] = new Array();\n                    DataServiceRequest.parseBatchResponses(data.__batchResponses, requests, responses, this._callerContext).then(\n                        (errors: ProxyError[]) => {\n                            if (errors.length === 0) {\n                                Tracer.Information(this.batchRequestUri + ' success');\n                                resolve(responses);\n                            } else {\n                                Tracer.Errors(errors, this.batchRequestUri + ' failed.');\n                                reject(errors);\n                            }\n                        }\n                    );\n                },\n                (error: any) => {\n                    Tracer.Error(this.batchRequestUri + ' failed');\n                    reject(ErrorParser.parseErrorMessage(error, this._callerContext));\n                },\n                this._query.returnType,\n                this._clientTimeoutInMs,\n                callerContext\n            );\n        });\n    }\n\n    /**\n     * Gets the Request Uri.\n     */\n    private getRequestUri(): string {\n        let requestUri: string = this._callerContext.requestContext.apiSettings.baseUrl + 'Commerce';\n        if (this._query.entitySet) {\n            requestUri = `${requestUri}/${this._query.entitySet}`;\n\n            if (this._query.key) {\n                requestUri = `${requestUri}(${DataServiceRequest.formatKey(this._query.key)})`;\n            } else if (this._query.entitySet === 'Customers' && this._query.key !== null && this._query.key !== undefined) {\n                requestUri = `${requestUri}('')`;\n            }\n        }\n\n        // Appends the action (POST) or function (GET) name to the Uri\n        if (this._hasOperationName) {\n            requestUri += '/' + this._query.action;\n\n            // Construct OData function Url with parameters. [e.g. Func(), Func(param1='',param2='')]\n            if (!this._query.isAction && this._query.data && this._query.data.parameters) {\n                requestUri += '(' + DataServiceRequest.formatFunctionParameter(this._query.data.parameters) + ')';\n            }\n        }\n\n        if (this._query.isReturnTypeACollection) {\n            requestUri = DataServiceRequest.addParameter(\n                requestUri,\n                '$top',\n                this._query.resultSettings && this._query.resultSettings.Paging\n                    ? this._query.resultSettings.Paging.Top\n                    : ApiTimeoutInMilliSecond\n            ); // Config.defaultPageSize);\n            requestUri = DataServiceRequest.addParameter(\n                requestUri,\n                '$skip',\n                this._query.resultSettings && this._query.resultSettings.Paging ? this._query.resultSettings.Paging.Skip : 0\n            );\n            requestUri = DataServiceRequest.addParameter(requestUri, '$inlinecount', this._query.inlineCount ? 'allpages' : null);\n\n            if (this._query.resultSettings.count) {\n                requestUri = DataServiceRequest.addParameter(requestUri, '$count', 'true');\n            }\n\n            requestUri = DataServiceRequest.addParameter(\n                requestUri,\n                '$filter',\n                this._query.filterSettings ? this._query.filterSettings : 0\n            );\n\n            if (this._query.resultSettings && this._query.resultSettings.Sorting && this._query.resultSettings.Sorting.Columns) {\n                const orderByColumns = [];\n                this._query.resultSettings.Sorting.Columns.forEach((column: SortColumn) => {\n                    if (!isNullOrWhitespace(column.ColumnName || EMPTY)) {\n                        orderByColumns.push(format('{0}%20{1}', column.ColumnName, column.IsDescending ? 'desc' : 'asc'));\n                    }\n                });\n                if (orderByColumns.length > 0) {\n                    requestUri = DataServiceRequest.addParameter(requestUri, '$orderby', orderByColumns.join(','));\n                }\n            }\n        }\n\n        if (this._query.expands && hasElements(this._query.expands)) {\n            requestUri = DataServiceRequest.addParameter(requestUri, '$expand', this._query.expands.join());\n        }\n\n        if (!isNullOrWhitespace(ApiVersion)) {\n            requestUri = DataServiceRequest.addParameter(requestUri, 'api-version', ApiVersion);\n        }\n\n        return requestUri;\n    }\n\n    /**\n     * Executes paginated requests for all entities.\n     * @param {AsyncResult{T}} asyncResult The async result.\n     * @param {{ [headerName: string]: string }} headerName the headers for the request.\n     * @param {number} skip The offset.\n     * @param {Array<T>} The array result.\n     */\n    private getAllPages<T>(headers: { [headerName: string]: string }, skip: number, results?: T[]): Promise<T> {\n        skip = skip || 0;\n        const top = 1000; // Config.defaultPageSize;\n        this._query.resultSettings = this._query.resultSettings || {};\n        this._query.resultSettings.Paging = this._query.resultSettings.Paging || {};\n        this._query.resultSettings.Paging.Top = top;\n        results = results || [];\n\n        return this.loadPage<T>(headers, skip)\n            .then((loadPageResults: T) => {\n                if (loadPageResults) {\n                    if (typeof (loadPageResults as any).length === 'number') {\n                        results = results.concat(loadPageResults);\n\n                        if ((loadPageResults as any).length < top) {\n                            // This page contains less items than top\n                            if ((loadPageResults as any).hasNextPage) {\n                                // This means the pagesize defined on server side is smaller than the top\n                                skip += (loadPageResults as any).length;\n                                return this.getAllPages<T>(headers, skip, results); // Try to fetch the next page\n                            } else {\n                                // No more pages need to fetch\n                                return Promise.resolve((results as any) as T);\n                            }\n                        } else {\n                            // This page contains exact amount of item as the top, should not contain more\n                            skip += top;\n                            return this.getAllPages<T>(headers, skip, results); // Try to fetch the next page\n                        }\n                    } else {\n                        // The pageResult is a single item\n                        results.push((loadPageResults as unknown) as T);\n                        return Promise.resolve((results as unknown) as T);\n                    }\n                }\n            })\n            .catch(error => {\n                return Promise.reject(error);\n            });\n    }\n\n    /**\n     * Builds the header to be sent as part of the request.\n     * @returns {{ [headerName: string]: string }} a key value pair collection of header names and header values.\n     */\n    private buildQueryHeader(): { [headerName: string]: string } {\n        const headers: { [headerName: string]: string } = {};\n        headers['from-keystone'] = 'true';\n\n        // copy default values from default header\n        for (const headerName in DEFAULT_HEADER) {\n            if (DEFAULT_HEADER.hasOwnProperty(headerName)) {\n                headers[headerName] = DEFAULT_HEADER[headerName];\n            }\n        }\n\n        // Copy operating unit number if present for C2 (if an operation is done by a customer or by anonymous user) scenarios.\n        if (!isNullOrWhitespace(this._callerContext.requestContext.apiSettings.oun)) {\n            headers[OPERATINGUNITNUMBER_HEADERNAME] = this._callerContext.requestContext.apiSettings.oun;\n        }\n\n        // Add accept-language header to send user preferred locale to server.\n        headers[ACCEPT_LANGUAGE] = this._callerContext.requestContext.locale;\n\n        // Add custom AppInsights headers\n        headers[REQUEST_ID] = this._callerContext.requestContext.operationId;\n\n        // OBO request\n        const { user, cookies } = this._callerContext.requestContext;\n        if (user.hasOwnProperty(OBO_REQUEST)) {\n            const isOBORequest = user[OBO_REQUEST];\n            if (cookies.hasOwnProperty(GET_ACCOUNT_SELECTION_COOKIE)) {\n                const accountSelectionCookie = cookies[GET_ACCOUNT_SELECTION_COOKIE];\n                const accountSelectionCustomerId = accountSelectionCookie();\n                if (!isNullOrWhitespace(accountSelectionCustomerId) && isOBORequest) {\n                    const accountSelectionCustomerIdParts: string[] = accountSelectionCustomerId.split(':');\n                    headers[CUSTOMER_ACCOUNT_NUMBER] = accountSelectionCustomerIdParts[1];\n                } else if (isOBORequest) {\n                    headers[CUSTOMER_ACCOUNT_NUMBER] = '';\n                }\n            }\n        }\n\n        // add any tokens as part of the header\n        for (const tokenName in this._query.tokens) {\n            if (this._query.tokens.hasOwnProperty(tokenName)) {\n                const tokenValue: string = this._query.tokens[tokenName];\n\n                if (!isNullOrWhitespace(tokenValue)) {\n                    headers[tokenName] = tokenValue;\n                }\n            }\n        }\n\n        // Now check whether authentication token is present or not, if present it will be added into Authorization header.\n        if (\n            this._callerContext &&\n            this._callerContext.requestContext.user &&\n            !isNullOrWhitespace(this._callerContext.requestContext.user.token)\n        ) {\n            headers[AUTHORIZATION_HEADERNAME] = `id_token ${this._callerContext.requestContext.user.token}`;\n        }\n\n        // Check if an Bearer access token is being provided. If present it will be added into Authorization header\n        if (\n            this._callerContext &&\n            this._callerContext.requestContext &&\n            !isNullOrWhitespace(this._callerContext.requestContext.accessToken)\n        ) {\n            headers[AUTHORIZATION_HEADERNAME] = `Bearer ${this._callerContext.requestContext.accessToken}`;\n        }\n\n        // Add AppSessionId and UserSessionId to request header\n        if (this._callerContext.requestContext[`cookies`]) {\n            const cookieData: IPartialCookieContext = this._callerContext.requestContext[`cookies`];\n            const appSessionCookie = cookieData.get('ai_session');\n            const userSessionCookie = cookieData.get('ai_user');\n\n            if (appSessionCookie && appSessionCookie.status === 'FOUND') {\n                const appSessionId = appSessionCookie.value?.split('|')[0];\n                headers[APPSESSION_ID] = appSessionId;\n            }\n            if (userSessionCookie && userSessionCookie.status === 'FOUND') {\n                const userSessionId = userSessionCookie.value?.split('|')[0];\n                headers[USERSESSION_ID] = userSessionId;\n            }\n        }\n\n        return headers;\n    }\n\n    /**\n     * Executes request for one page.\n     * @param {AsyncResult<T>} The async result.\n     * @param {{ [headerName: string]: string }} headerName the headers for the request.\n     */\n    private loadPage<T>(headers: { [headerName: string]: string }, skip?: number): Promise<T> {\n        if (skip) {\n            this._query.resultSettings = this._query.resultSettings || {};\n            this._query.resultSettings.Paging = this._query.resultSettings.Paging || {};\n            this._query.resultSettings.Paging.Skip = skip;\n        }\n\n        const requestId = Utils.generateGuid();\n        modelManagersRetailServerRequestStarted(requestId, this._requestUri);\n\n        return new Promise((resolve, reject) => {\n            // This is the pipe for all OData API calls.\n            ODataHttpRequest(\n                {\n                    requestUri: this.getRequestUri(),\n                    method: this._method,\n                    data: DataServiceRequest.toJson(this._query.data),\n                    headers\n                },\n                (data: any) => {\n                    modelManagersRetailServerRequestFinished(requestId, this._requestUri);\n                    parseOdataResult(data, this._query.returnType).then(resultSet => {\n                        if (data) {\n                            if (data[ODATA_TOTAL_COUNT_PROPERTY]) {\n                                this._totalCount = data[ODATA_TOTAL_COUNT_PROPERTY];\n                            }\n                            const otherOdata = DataServiceRequest.setMetadata(data);\n                            if (otherOdata) {\n                                this._otherOdata = otherOdata;\n                            }\n                        }\n\n                        if (this._cacheKeyIdentifierFromReturnType) {\n                            if (Object.prototype.toString.call(resultSet) === '[object Array]') {\n                                this._cacheKeyFromReturnType.concat(\n                                    resultSet.map(result => result[this._cacheKeyIdentifierFromReturnType]).filter(Boolean)\n                                );\n                            } else if (typeof resultSet === 'object') {\n                                this._cacheKeyFromReturnType.push(resultSet[this._cacheKeyIdentifierFromReturnType]);\n                            }\n                        }\n\n                        resolve(resultSet);\n                    });\n                },\n                (error: any) => {\n                    modelManagersRetailServerRequestError(requestId, this._requestUri, error.message);\n                    reject(ErrorParser.parseErrorMessage(error, this._callerContext));\n                },\n                this._query.returnType,\n                this._clientTimeoutInMs,\n                this._callerContext\n            );\n        });\n    }\n\n    /**\n     * Sets all the Odata propeties from retail api on DataServiceRequest\n     * @param data retail api call data\n     */\n    private static setMetadata(data: any): IDictionary<string> | undefined {\n        // Sets all the Odata properties on DataServiceRequest\n        const odataList = Object.keys(data).filter(key => {\n            if (key !== ODATA_TOTAL_COUNT_PROPERTY) {\n                return key.indexOf('@odata') === 0;\n            }\n        });\n\n        if (odataList.length > 0) {\n            const odata = odataList.reduce((newData, key) => {\n                const newKey = key.replace('@odata.', '');\n                newData[newKey] = data[key];\n                return newData;\n            }, {});\n\n            return odata;\n        }\n        return undefined;\n    }\n}\n","\n    // <auto-generated />\n\n    import { AsyncResult } from '../async-result';\n    import { DataServiceQuery } from '../DataServiceQuery';\n    import { ScanResult } from '../Entities/CommerceTypes.g';\n    import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n    import { executeAction } from '../retail-action';\n\n    \n    \n    function scanResultsQuery(scannedText?: string): DataServiceQuery {\n        var key = (scannedText) ? { ScannedText: scannedText } : null;\n        return new DataServiceQuery(\"ScanResults\", \"ScanResult\", \"ScanResultClass\", key);\n    }\n    \n    export function createCreateInput(entity: ScanResult): IDataServiceRequest {\n        return scanResultsQuery().create(entity);\n    }\n\n    export function createScanResultAsync(context: IContext, entity: ScanResult): AsyncResult<ScanResult> {\n        const request = createCreateInput(entity);\n        return executeAction<ScanResult>(request, context);\n    }\n\n    export function createUpdateInput(entity: ScanResult): IDataServiceRequest {\n        return scanResultsQuery(entity.ScannedText).update(entity);\n    }\n\n    export function updateAsync(context: IContext, entity: ScanResult): AsyncResult<ScanResult> {\n        const request = createUpdateInput(entity);\n        return executeAction<ScanResult>(request, context);\n    }\n\n    export function createDeleteAsync(entity: ScanResult): IDataServiceRequest {\n        return scanResultsQuery(entity.ScannedText).delete();\n    }\n\n    export function deleteAsync(context: IContext, entity: ScanResult): AsyncResult<NullResult> {\n        const request = createDeleteAsync(entity);\n        return executeAction<NullResult>(request, context);\n    }\n\n    export function createReadAsync(scannedText: string): IDataServiceRequest {\n        return scanResultsQuery(scannedText).read();\n    }\n\n    export function readAsync(context: IContext, scannedText: string): AsyncResult<ScanResult> {\n        const request = createReadAsync(scannedText);\n        return executeAction<ScanResult>(request, context);\n    }\n\n    export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n        return scanResultsQuery().resultSettings(queryResultSettings).read();\n    }\n\n    export function readAllAsync(context: IContext): AsyncResult<ScanResult[]> {\n        const request = createReadAllAsync(context.queryResultSettings);\n        return executeAction<ScanResult[]>(request, context);\n    }\n    \n    "],"names":["msdyn365Commerce","storeQuery","DataServiceQuery","createGetDeliveryOptionsInput","queryResultSettings","resultSettings","createDataServiceRequestForOperation","bypassCache","returnEntity","getDeliveryOptionsAsync","context","request","executeAction","createRoundAmountByTenderTypeInput","amount","tenderTypeId","roundAmountByTenderTypeAsync","createGetAffiliationsByNameInput","affiliationNames","getAffiliationsByNameAsync","createVoidSuspendedTransactionsInput","suspendedCartIds","shiftId","shiftTerminalId","reasonCodeLines","voidSuspendedTransactionsAsync","createGetAvailablePromotionsInput","searchCriteria","getAvailablePromotionsAsync","createGetMerchantPropertiesByServiceAccountIdInput","serviceAccountIds","getMerchantPropertiesByServiceAccountIdAsync","createGetStoreSafesInput","getStoreSafesAsync","createGetShiftReconciliationLinesInput","shiftReconciliationLineRetrievalCriteria","getShiftReconciliationLinesAsync","createReconcileLinesInput","shiftReconciliationLines","description","Description","reconcileLinesAsync","createUndoReconciliationInput","undoReconciliationAsync","createGetReceiptMasksInput","receiptTransactionType","getReceiptMasksAsync","createGetSearchSuggestionsInput","searchSuggestionCriteria","getSearchSuggestionsAsync","createStartSessionInput","transactionId","overrideSession","startSessionAsync","createEndSessionInput","endSessionAsync","createActivateDeviceInput","deviceNumber","terminalId","deviceId","forceActivate","deviceType","activateDeviceAsync","createMassActivateDeviceInput","massActivateDeviceAsync","createDeactivateDeviceInput","deactivateDeviceAsync","createCreateHardwareStationTokenInput","createHardwareStationTokenAsync","createValidateHardwareStationTokenInput","hardwareStationToken","validateHardwareStationTokenAsync","createGetBarcodeByIdInput","barcodeId","getBarcodeByIdAsync","createGetButtonGridByIdInput","buttonGridId","getButtonGridByIdAsync","createGetButtonGridsWithoutImageInput","height","width","getButtonGridsWithoutImageAsync","createGetButtonGridsByIdsInput","getButtonGridsByIdsCriteria","getButtonGridsByIdsAsync","createGetImageBlobsByPictureIdsInput","pictureIds","getImageBlobsByPictureIdsAsync","createGetCardTypesInput","getCardTypesAsync","createResolveCardTypesInput","cardNumberPrefix","cardType","paymentToken","resolveCardTypesAsync","createGetSupportedPaymentCardTypesInput","getSupportedPaymentCardTypesAsync","createGetCitiesInput","countryRegionId","stateProvinceId","countyId","getCitiesAsync","createGetCountryRegionsForShippingInput","getCountryRegionsForShippingAsync","createGetCountryRegionsByLanguageIdInput","languageId","getCountryRegionsByLanguageIdAsync","createGetOnlineChannelInput","channelId","getOnlineChannelAsync","createGetCountiesInput","getCountiesAsync","createGetCreditMemoByIdInput","creditMemoId","getCreditMemoByIdAsync","createGetDownloadIntervalInput","dataStoreName","getDownloadIntervalAsync","createGetTerminalDataStoreNameInput","getTerminalDataStoreNameAsync","createGetDownloadLinkInput","downloadSessionId","getDownloadLinkAsync","createGetDataDownloadParametersByTerminalInput","terminalDataDownloadRequestInfo","TerminalDataDownloadRequestInfo","getDataDownloadParametersByTerminalAsync","createGetDataUploadParametersByTerminalInput","terminalDataUploadRequestInfo","TerminalDataUploadRequestInfo","getDataUploadParametersByTerminalAsync","createGetDownloadSessionsInput","getDownloadSessionsAsync","createGetInitialDownloadSessionsInput","getInitialDownloadSessionsAsync","createGetUploadJobDefinitionsInput","getUploadJobDefinitionsAsync","createGetUploadIntervalInput","getUploadIntervalAsync","createPostOfflineTransactionsInput","offlineTransactionForMPOS","postOfflineTransactionsAsync","createSetOfflineTerminalStateInput","offlineTerminalState","setOfflineTerminalStateAsync","createGetRetailTrialPlanOfferInput","getRetailTrialPlanOfferAsync","createGetLatestNumberSequenceInput","searchLocationValue","getLatestNumberSequenceAsync","createGetReceiptNumberResetInfoInput","getReceiptNumberResetInfoAsync","createGetLoyaltyRewardPointActivityTimelineInput","cardNumber","rewardPointId","getLoyaltyRewardPointActivityTimelineAsync","createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput","getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync","createCalculateTotalCurrencyAmountInput","currenciesAmount","calculateTotalCurrencyAmountAsync","createGetDiscountCodeInput","discountCode","getDiscountCodeAsync","createGetDiscountCodesByOfferIdInput","offerId","getDiscountCodesByOfferIdAsync","createGetDiscountCodesByKeywordInput","keyword","activeDate","getDiscountCodesByKeywordAsync","createGetDistrictsInput","cityName","getDistrictsAsync","createGetHardwareStationProfilesInput","getHardwareStationProfilesAsync","createGetHardwareProfileByIdInput","hardwareProfileId","getHardwareProfileByIdAsync","createGetLocalizedStringsInput","textId","getLocalizedStringsAsync","createGetOperationPermissionByIdInput","operationId","getOperationPermissionByIdAsync","createGetReasonCodesByIdInput","reasonCodeGroupId","getReasonCodesByIdAsync","createSearchReportDataSetInput","reportId","parameters","searchReportDataSetAsync","createGetReportDataSetByIdInput","getReportDataSetByIdAsync","createGetSrsReportDataSetInput","getSrsReportDataSetAsync","createGetIncomeExpenseAccountsInput","incomeExpenseAccountType","getIncomeExpenseAccountsAsync","createGetStateProvincesInput","getStateProvincesAsync","createGetZipCodesInput","district","getZipCodesAsync","createGetAddressFromZipCodeInput","zipPostalCode","getAddressFromZipCodeAsync","createDisassembleKitTransactionsInput","kitTransaction","disassembleKitTransactionsAsync","createIssueLoyaltyCardInput","loyaltyCard","issueLoyaltyCardAsync","createGetLoyaltyCardInput","getLoyaltyCardAsync","createGetCustomerLoyaltyCardsInput","accountNumber","getCustomerLoyaltyCardsAsync","createGetLoyaltyCardTransactionsInput","getLoyaltyCardTransactionsAsync","createGetLoyaltyRewardPointsExpiringSoonInput","daysToExpiry","getLoyaltyRewardPointsExpiringSoonAsync","createSearchJournalTransactionsInput","searchJournalTransactionsAsync","createGetGiftCardInput","giftCardId","pin","expirationMonth","expirationYear","getGiftCardAsync","createGetGiftCardInquiryInput","getGiftCardInquiryAsync","createGetNonSalesTransactionsInput","nonSalesTenderTypeValue","getNonSalesTransactionsAsync","createCreateNonSalesTransactionInput","nonSalesTransaction","createNonSalesTransactionAsync","createCreateDropAndDeclareTransactionInput","dropAndDeclareTransaction","createDropAndDeclareTransactionAsync","createGetTaxOverridesInput","overrideBy","getTaxOverridesAsync","createGetCustomerBalanceInput","invoiceAccountNumber","getCustomerBalanceAsync","createInitiateLinkToExistingCustomerInput","email","activationToken","emailTemplateId","emailProperties","ActivationToken","initiateLinkToExistingCustomerAsync","createFinalizeLinkToExistingCustomerInput","finalizeLinkToExistingCustomerAsync","createUnlinkFromExistingCustomerInput","unlinkFromExistingCustomerAsync","createGetOfflineSyncStatusInput","getOfflineSyncStatusAsync","createGetOfflinePendingTransactionCountInput","getOfflinePendingTransactionCountAsync","createGetOfflinePendingTransactionCountByShiftInput","getOfflinePendingTransactionCountByShiftAsync","createGetOfflineOpenShiftsInput","filterByCurrentUser","includeAllShiftsForStore","getOfflineOpenShiftsAsync","createDeleteOfflineShiftsInput","deleteOfflineShiftsAsync","createUpdateDownloadSessionInput","downloadSession","updateDownloadSessionAsync","createUpdateApplicationVersionInput","appVersion","updateApplicationVersionAsync","createGetStorageAccessTokenForUploadInput","getStorageAccessTokenForUploadAsync","createGetBusinessProcessModelLibrariesInput","getBusinessProcessModelLibrariesAsync","createGetBusinessProcessModelLibraryInput","businessProcessModelFrameworkLineId","hierarchyDepth","getBusinessProcessModelLibraryAsync","createSearchTaskGuidesByTitleInput","taskGuideSearchText","queryTypeValue","searchTaskGuidesByTitleAsync","createGenerateBusinessProcessModelPackageInput","taskRecording","generateBusinessProcessModelPackageAsync","createDownloadRecordingInput","businessProcessModelLineId","downloadRecordingAsync","createLoadRecordingFromFileInput","recordingUrl","loadRecordingFromFileAsync","createGenerateRecordingFileInput","generateRecordingFileAsync","createGenerateTrainingDocumentInput","generateTrainingDocumentAsync","createGenerateRecordingBundleInput","generateRecordingBundleAsync","createUploadRecordingInput","uploadRecordingAsync","createGetAttributeDefinitionsInput","attributeDefinitionCriteria","getAttributeDefinitionsAsync","createGetAttributeGroupDefinitionsInput","attributeGroupDefinitionCriteria","getAttributeGroupDefinitionsAsync","createSaveFiscalTransactionInput","fiscalTransaction","saveFiscalTransactionAsync","createValidatePrintReceiptCopyAllowedInput","salesOrderToPrint","validatePrintReceiptCopyAllowedAsync","createRegisterAuditEventInput","auditEvent","registerAuditEventAsync","createRegisterAndGetAuditEventInput","registerAndGetAuditEventAsync","createGetInventoryAvailableToPromiseInput","productId","itemId","inventLocationId","getInventoryAvailableToPromiseAsync","createGetSalesOrdersWithNoFiscalTransactionsInput","storeNumber","getSalesOrdersWithNoFiscalTransactionsAsync","createGetNotificationsInput","subscribedOperations","extensionProperties","getNotificationsAsync","createAcknowledgeNotificationsInput","lastPullDateTime","acknowledgeNotificationsAsync","createSearchPurchaseHistoryInput","searchPurchaseHistoryAsync","createGetFiscalIntegrationFiscalDocumentInput","functionalityProfileGroupId","fiscalIntegrationDocumentRetrievalCriteria","connectorType","getFiscalIntegrationFiscalDocumentAsync","createGetFiscalIntegrationNonFiscalDocumentInput","getFiscalIntegrationNonFiscalDocumentAsync","createGetFiscalIntegrationFiscalServiceSetupDocumentInput","getFiscalIntegrationFiscalServiceSetupDocumentAsync","createGetFiscalIntegrationFiscalServiceReadDataDocumentInput","getFiscalIntegrationFiscalServiceReadDataDocumentAsync","createProcessFiscalIntegrationFiscalServiceReadDataResultInput","documentToProcess","processFiscalIntegrationFiscalServiceReadDataResultAsync","createSaveFiscalIntegrationRegistrationResultInput","registrationResult","saveFiscalIntegrationRegistrationResultAsync","createGetFiscalIntegrationRegistrationProcessInput","getFiscalIntegrationRegistrationProcessAsync","createGetChannelSupportedFiscalIntegrationEventsByGroupInput","getChannelSupportedFiscalIntegrationEventsByGroupAsync","createGetFiscalIntegrationTechnicalProfilesInput","getFiscalIntegrationTechnicalProfilesAsync","createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput","getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync","createGetFiscalRegistrationProcessSummaryInput","getFiscalRegistrationProcessSummaryAsync","createBackupFiscalRegistrationProcessContextInput","fiscalProcessCompleted","fiscalIntegrationSerializedContext","backupFiscalRegistrationProcessContextAsync","createGetActiveFiscalRegistrationProcessContextBackupInput","getActiveFiscalRegistrationProcessContextBackupAsync","createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput","fiscalIntegrationTechnicalProfileSearchCriteria","getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync","createGetFiscalIntegrationServiceStatusInput","fiscalIntegrationServiceInfo","getFiscalIntegrationServiceStatusAsync","createSubmitFiscalIntegrationDocumentInput","documentToSubmit","submitFiscalIntegrationDocumentAsync","createGetFeatureStatesInput","featureNames","getFeatureStatesAsync","createGetLastFiscalIntegrationSequentialSignaturesInput","sequentialKeys","getLastFiscalIntegrationSequentialSignaturesAsync","createCreateFiscalTransactionInput","createFiscalTransactionAsync","createGetEstimatedPickupTimeslotAvailabilitiesInput","getEstimatedPickupTimeslotAvailabilitiesAsync","createCalculateSalesDocumentInput","salesDocument","calculateSalesDocumentAsync","createSearchVendorsInput","searchVendorsAsync","createValidateVendorApprovedForItemInput","vendorAccountNumber","validateVendorApprovedForItemAsync","createLocalizationIndiaGetBusinessVerticalsInput","localizationIndiaGetBusinessVerticalsAsync","createGetReportCopilotSummaryInput","getReportCopilotSummaryAsync","createGetButtonGridsInput","getButtonGridsAsync","createGetButtonGridsByScreenSizeInput","getButtonGridsByScreenSizeAsync","createGetOperationalInsightsConfigurationInput","getOperationalInsightsConfigurationAsync","createGetCashDeclarationsInput","getCashDeclarationsAsync","createGetCountryRegionsInput","getCountryRegionsAsync","createGetCustomerGroupsInput","getCustomerGroupsAsync","createGetChannelDeliveryOptionConfigurationInput","getChannelDeliveryOptionConfigurationAsync","createGetChannelsByTypeInput","channelType","getChannelsByTypeAsync","createGetChannelsInput","getChannelsAsync","createGetOnlineChannelAzureB2CConfigurationInput","getOnlineChannelAzureB2CConfigurationAsync","createSearchChannelsInput","searchChannelsAsync","createGetEnvironmentConfigurationInput","getEnvironmentConfigurationAsync","createGetOrderManagementConfigurationInput","getOrderManagementConfigurationAsync","createGetPaymentConfigurationInput","getPaymentConfigurationAsync","createGetSearchConfigurationInput","getSearchConfigurationAsync","createGetExtensionPackageDefinitionsInput","getExtensionPackageDefinitionsAsync","createGetExtensionProfileInput","getExtensionProfileAsync","createGetDeviceConfigurationInput","getDeviceConfigurationAsync","createGetVisualProfileInput","getVisualProfileAsync","createGetLanguagesInput","getLanguagesAsync","createGetAffiliationsInput","getAffiliationsAsync","createGetOperationPermissionsInput","getOperationPermissionsAsync","createGetReasonCodesInput","getReasonCodesAsync","createGetReturnOrderReasonCodesInput","getReturnOrderReasonCodesAsync","createGetSalesTaxGroupsInput","getSalesTaxGroupsAsync","createGetTenderTypesInput","getTenderTypesAsync","createGetUnitsOfMeasureInput","getUnitsOfMeasureAsync","createGetDiscountCodesInput","getDiscountCodesAsync","createGetCurrenciesInput","getCurrenciesAsync","createGetCurrenciesAmountInput","currencyCode","getCurrenciesAmountAsync","createGetCommissionSalesGroupsInput","getCommissionSalesGroupsAsync","createSearchCommissionSalesGroupsInput","searchText","searchCommissionSalesGroupsAsync","createGetPaymentMerchantInformationInput","getPaymentMerchantInformationAsync","createGetPaymentPropertiesIfModifiedInput","merchantInformationHash","getPaymentPropertiesIfModifiedAsync","createGetOnlineChannelPublishStatusInput","getOnlineChannelPublishStatusAsync","createSetOnlineChannelPublishStatusInput","publishingStatus","statusMessage","setOnlineChannelPublishStatusAsync","createGetInventoryConfigurationInput","getInventoryConfigurationAsync","createGetMerchandisingConfigurationInput","getMerchandisingConfigurationAsync","createGetPurchaseConfigurationInput","getPurchaseConfigurationAsync","createSearchJournalNamesInput","searchJournalNamesAsync","createGetAvailableDevicesInput","getAvailableDevicesAsync","createGetUserDefinedSecretStringInput","secretName","getUserDefinedSecretStringAsync","createGetUserDefinedSecretCertificateInput","getUserDefinedSecretCertificateAsync","createGetImageBlobInput","imageId","getImageBlobAsync","createGetExtensibleEnumerationsInput","getExtensibleEnumerationsAsync","createGetAddressPurposesInput","getAddressPurposesAsync","createGetReturnPolicyInput","getReturnPolicyAsync","createGetEmailReceiptSettingsInput","getEmailReceiptSettingsAsync","createCheckFiscalIntegrationComplianceInput","checkFiscalIntegrationComplianceAsync","createGetCustomerInsightsCopilotSummaryInput","customerAccountNumber","getCustomerInsightsCopilotSummaryAsync","createGetProductCopilotSummaryInput","getProductCopilotSummaryAsync","createGetCustomerTimelineCopilotSummaryInput","getCustomerTimelineCopilotSummaryAsync","productsQuery","recordId","key","RecordId","createCreateInput","entity","create","createProductAsync","createUpdateInput","update","updateAsync","createDeleteAsync","delete","deleteAsync","createReadAsync","read","readAsync","createReadAllAsync","readAllAsync","createSearchInput","productSearchCriteria","searchAsync","createGetRefinersInput","getRefinersAsync","createGetDimensionValuesInput","dimension","matchingDimensionValues","kitVariantResolutionContext","getDimensionValuesAsync","createGetDimensionValuesWithEstimatedAvailabilitiesInput","getDimensionValuesWithEstimatedAvailabilitiesAsync","createGetVariantsByDimensionValuesInput","getVariantsByDimensionValuesAsync","createGetVariantsByComponentsInSlotsInput","matchingSlotToComponentRelationship","getVariantsByComponentsInSlotsAsync","createGetByIdsInput","productIds","catalogId","getByIdsAsync","createCompareInput","compareAsync","createGetRecommendedProductsInput","customerId","getRecommendedProductsAsync","createRefineSearchByCategoryInput","categoryId","refinementCriteria","refineSearchByCategoryAsync","createRefineSearchByTextInput","refineSearchByTextAsync","createGetProductSearchRefinersInput","getProductSearchRefinersAsync","address","filterOption","createChangesInput","changesAsync","createBeginReadChangedProductsInput","changedProductSearchCriteria","beginReadChangedProductsAsync","createReadChangedProductsInput","skipProductPriceCalculation","readChangedProductsAsync","createGetDeletedListingsInput","skip","top","getDeletedListingsAsync","createGetAssortedProductIdsInput","includeFutureAssortedProducts","getAssortedProductIdsAsync","createCheckProductsExistenceInput","productExistenceCriteria","checkProductsExistenceAsync","createGetDeletedCatalogsInput","getDeletedCatalogsAsync","createGetDeletedLanguagesInput","getDeletedLanguagesAsync","createGetProductRatingsInput","getProductRatingsAsync","createGetProductAssortmentIntervalsInput","getProductAssortmentIntervalsAsync","createDeleteListingsByCatalogsInput","catalogIds","deleteListingsByCatalogsAsync","createDeleteListingsByLanguagesInput","languages","deleteListingsByLanguagesAsync","createEndReadChangedProductsInput","session","endReadChangedProductsAsync","createUpdateListingPublishingStatusInput","publishingStatuses","updateListingPublishingStatusAsync","createGetCatalogProductAttributesInput","getCatalogProductAttributesAsync","createSearchMediaLocationsInput","mediaLocationSearchCriteria","searchMediaLocationsAsync","createGetPricesInput","inventoryDimensionId","barcode","unitOfMeasureSymbol","quantity","getPricesAsync","createGetProductAvailabilitiesInput","itemIds","getProductAvailabilitiesAsync","createGetActivePricesInput","projectDomain","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","includeAttainablePricesAndDiscounts","priceLookupContext","getActivePricesAsync","createGetProductPromotionsInput","productDiscountIds","getProductPromotionsAsync","createGetFilteredSlotComponentsInput","slotId","selectedComponents","getFilteredSlotComponentsAsync","createGetComponentByProductSlotRelationInput","componentRelation","getComponentByProductSlotRelationAsync","hitPrefix","hitSuffix","createGetCategoryPathsInput","categoryPathLookups","CategoryPathLookups","getCategoryPathsAsync","createGetProductUnitsOfMeasureInput","unitOfMeasureSearchCriteria","getProductUnitsOfMeasureAsync","createSearchByCategoryInput","searchByCategoryAsync","createSearchByTextInput","searchByTextAsync","createSearchByCriteriaInput","searchByCriteriaAsync","createGetByLookupClausesInput","productLookupClauses","getByLookupClausesAsync","createGetRefinersByCategoryInput","getRefinersByCategoryAsync","createGetRefinersByTextInput","getRefinersByTextAsync","createGetRefinerValuesByCategoryInput","refinerId","refinerSourceValue","getRefinerValuesByCategoryAsync","createGetRefinerValuesByTextInput","getRefinerValuesByTextAsync","createGetChannelProductAttributesInput","getChannelProductAttributesAsync","createGetByIdInput","getByIdAsync","createGetAttributeValuesInput","getAttributeValuesAsync","createGetMediaLocationsInput","getMediaLocationsAsync","createGetMediaBlobsInput","getMediaBlobsAsync","createGetDefaultComponentsInput","getDefaultComponentsAsync","createGetSlotComponentsInput","getSlotComponentsAsync","createGetAllRelationTypesInput","getAllRelationTypesAsync","createGetRelationTypesInput","getRelationTypesAsync","createGetRelatedProductsInput","relationTypeId","getRelatedProductsAsync","createGetApplicableWarrantiesInput","warrantableProductIds","getApplicableWarrantiesAsync","createGetPriceInput","getPriceAsync","createCalculateProductPriceInput","loyaltyCardId","calculateProductPriceAsync","createGetEstimatedProductWarehouseAvailabilityInput","productWarehouses","quantityUnitType","getEstimatedProductWarehouseAvailabilityAsync","createUpdateProductWarehouseAvailabilityInput","quantities","updateProductWarehouseAvailabilityAsync","createGetEstimatedAvailabilityInput","getEstimatedAvailabilityAsync","ApiVersion","EntityIdentifier","AutoExitMethodType","CardType","PublishingAction","ListingPublishingActionStatus","OnlineChannelPublishStatusType","ReceiptTransactionType","EmployeePriceOverrideType","KeyInPriceRestriction","KeyInQuantityRestriction","ProductDimensionType","ProductType","NumberSequenceSeedType","ReasonCodeSourceType","TriggerFunctionType","QueryType","ChangeAction","PeriodicDiscountOfferType","SearchFilterType","InfoCodeActivity","SrsReportFileFormat","ShiftReconciliationLineStatus","ProductSearchServiceType","SearchSuggestionType","SalesStatus","EFTType","FilterDeliveryModeOption","InventoryDocumentLineOperationResultMode","InventoryDocumentStatus","InventoryDocumentUpdateLinesActionType","InventoryInboundOutboundDocumentOperationType","InventoryInboundOutboundSourceDocumentStatus","InventorySourceDocumentType","InventoryInboundOutboundDocumentState","ReceiptNumberResetType","PeriodUnit","WarrantyPriceRangeBaseType","LogOnKeyboardType","LogOnLayoutType","DeliveryModeTypeFilter","InventoryDocumentValidationResultSeverity","InventoryDocumentOverreceivingErrors","InventoryDocumentSerialNumberErrors","EmployeeIdentityType","FulfillmentOperationType","PaymentStatus","UserAlertSourceType","CustomerOrderMode","InventoryValidationErrors","InventoryJournalPosAdjustmentType","ProductDataValidationErrors","MediaType","CheckoutLocation","CountryRegionISOCode","AddressOperationType","AddressType","AttributeDataType","BarcodeEntryMethodType","BarcodeMaskType","TransactionStatus","GiftCardOperationType","RetailGiftCardType","PriceMethod","ManualPriceEntryType","ConcurrencyMode","SalesAgreementLineType","DiscountLineType","ManualDiscountType","CustomerDiscountType","ReasonCodeInputType","ReasonCodeLineType","ChargeModule","ChargeType","ChargeMethod","CustType","CashType","IncomeExpenseAccountType","TenderLineStatus","TenderLineVoidStatus","PaymentProcessingType","CreditCardProcessorStatus","ContactInformationType","CommerceEntityDataLevel","ProductPropertyType","AttributeGroupType","ProductSource","RoundingMethod","LineMultilineDiscountOnItem","LoyaltyRewardPointEntryType","LoyaltyRewardPointType","TransactionType","CashManagementTransactionContext","CustomerTimelineItemEntityType","EmployeePermissionsAllowPrintingReceiptCopy","AddressFormatLineType","CustomerOrderSynchronizationMode","StatementMethod","SalesRepPromptType","RetailProductSearchType","RetailDenominationsToDisplay","EmployeeLogonType","RetailCustomerSearchMode","RequirePaymentForFulfillment","CardNotPresentProcessingConfiguration","ChangeDueBehavior","FontSchemeType","DefaultSearchResultDisplayViewType","DeviceActivationStatus","DeviceType","DualDisplayType","FiscalRegisterType","PrinterLogotype","PrinterLogoAlignmentType","FiscalIntegrationConnectorType","FiscalIntegrationConnectorLocation","ReceiptType","PrintBehavior","DistanceUnit","StockCountStatus","UnitOfMeasureSource","RecommendedElementType","CommerceListInvitationStatus","CommerceListInvitationType","SearchLocation","OrderSearchType","SalesTransactionType","CustomerRefinerSource","PriceSourceType","RetailAffiliationType","InventoryDocumentLineOriginType","InventorySerialNumberLineStatus","InventoryTrackingDimensionLineStatus","InventorySourceDocumentLineStatus","RetailOperation","RefinerType","DisplayTemplate","ClientBookRefinerSource","ProductRefinerSource","LoyaltyCardTenderType","ReleasedProductType","RetailChannelType","LogOnConfiguration","TransactionServiceAuthenticationType","IncludePersonalDataInGuestOrderLookupPolicy","RetailAddressBookType","InventAvailabilityCalculationMode","InventoryAvailabilityClientDisplayMode","EmployeeActivityType","DeliveryPreferenceType","LayoutType","SalesInvoiceType","InvoiceType","InvoicePaidStatus","TaxOverrideType","TaxOverrideBy","ReasonCodeInputRequiredType","RecordingValueType","UserActionType","ArtifactType","FrameworkAccess","MetadataControl","FiscalIntegrationRegistrationStatus","CustomerOrderOperation","BusinessPartnerOperationType","BusinessPartnerOperationStatus","NatureOfAssessee","CartType","CartStatus","PeriodicDiscountsCalculateScope","TaxCalculationType","NoteRestriction","CustomerType","ContactInfoType","ChecklistStatus","ChecklistTaskDeepLinkType","ChecklistTaskStatus","DocumentStatus","CustomerOrderType","LineDiscountCalculationType","ShiftStatus","TaxRegistrationType","CommerceListType","ProductListType","RecommendationType","PurchaseTransferOrderType","BusinessPartnerUserStatus","InventoryAccuracy","ElectronicAddressType","MediaUsageType","DateValidationType","AffiliationFilterType","DownloadSessionStatus","HardwareStationType","AuditEventUploadType","AuditEventType","AuditLogTraceLevel","FiscalIntegrationEventType","FiscalIntegrationDocumentGenerationResultType","FiscalIntegrationRegistrationProcessMode","FiscalIntegrationServiceCommunicationResultType","FiscalIntegrationServiceFailureType","PickupTimeslotAvailabilitySearchOption","VendorValidationResultLevel","AttachedServiceStatus","ReceiptEmailBehavior","CartLineQuantityLimitsErrors","CommunicationErrors","ConfigurationErrors","DataValidationErrors","InvoiceDataValidationErrors","FeatureNotSupportedErrors","SecurityErrors","StorageErrors","VersionNotSupportedErrors","PaymentErrors","FiscalIntegrationServiceErrors","CommerceDataExchangeErrors","TaskManagementErrorCode","PricingDataValidationErrors","ProductPricingConfigurationErrorCode","OrderDataValidationErrors","PaymentConfigurationErrors","TaxLimitBase","OnlineStoreCustomerType","BusinessPartnerOperationDeliveryType","ProspectType","WrongEndpointErrors","RetailServerApiErrors","ExceptionSeverity","cartsQuery","id","Id","createCartAsync","cartSearchCriteria","createCheckoutInput","receiptEmail","tokenizedPaymentCard","receiptNumberSequence","cartTenderLines","cartVersion","checkoutLocation","checkoutAsync","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync","createGetPaymentsHistoryInput","getPaymentsHistoryAsync","createGetLineDeliveryOptionsByChannelIdInput","lineShippingAddresses","getLineDeliveryOptionsByChannelIdAsync","createGetLineDeliveryOptionsInput","getLineDeliveryOptionsAsync","createGetDeliveryPreferencesInput","getDeliveryPreferencesAsync","shippingAddress","cartLineIds","ignoreLinesWithDeliveryMode","createUpdateLineDeliverySpecificationsInput","lineDeliverySpecifications","updateLineDeliverySpecificationsAsync","createUpdateDeliverySpecificationInput","deliverySpecification","updateDeliverySpecificationAsync","createAddChargeInput","moduleTypeValue","chargeCode","addChargeAsync","createOverrideChargeInput","chargeLineId","overrideChargeAsync","createAddCartLineChargeInput","cartLineId","addCartLineChargeAsync","createOverrideCartLineChargeInput","overrideCartLineChargeAsync","createVoidInput","voidAsync","createAddCartLinesInput","cartLines","addCartLinesAsync","createAddReturnCartLinesInput","returnCartLines","returnTransactionSearchLocation","addReturnCartLinesAsync","createUpdateCartLinesInput","updateCartLinesAsync","createVoidCartLinesInput","voidCartLinesAsync","createRemoveCartLinesInput","removeCartLinesAsync","createAddTenderLineInput","cartTenderLine","addTenderLineAsync","createCalculateTenderDiscountInput","tenderLine","calculateTenderDiscountAsync","createAddPreprocessedTenderLineInput","preprocessedTenderLine","addPreprocessedTenderLineAsync","createValidateTenderLineForAddInput","validateTenderLineForAddAsync","createUpdateTenderLineSignatureInput","tenderLineId","signatureData","updateTenderLineSignatureAsync","createGetDeclinedOrVoidedCardReceiptsInput","receiptRetrievalCriteria","getDeclinedOrVoidedCardReceiptsAsync","createCopyInput","targetCartType","copyAsync","createAddInvoicedSalesLinesToCartInput","invoicedSalesLinesIds","addInvoicedSalesLinesToCartAsync","createRecallInvoicedSalesLinesInput","recallInvoicedSalesLineLookups","recallInvoicedSalesLinesAsync","createVoidTenderLineInput","isPreprocessed","forceVoid","voidTenderLineAsync","createIssueGiftCardInput","lineDescription","issueGiftCardAsync","createRefillGiftCardInput","refillGiftCardAsync","createCashOutGiftCardInput","cashOutGiftCardAsync","createSuspendInput","suspendAsync","createSuspendWithJournalInput","journalCartId","suspendWithJournalAsync","createResumeInput","resumeAsync","createResumeFromReceiptIdInput","receiptId","resumeFromReceiptIdAsync","createRemoveDiscountCodesInput","discountCodes","removeDiscountCodesAsync","createGetSuspendedInput","getSuspendedAsync","createOverrideCartLinePriceInput","price","overrideCartLinePriceAsync","createGetCardPaymentAcceptPointInput","cardPaymentAcceptSettings","getCardPaymentAcceptPointAsync","createRetrieveCardPaymentAcceptResultInput","resultAccessCode","cartId","settings","retrieveCardPaymentAcceptResultAsync","createRecallOrderInput","salesId","recallOrderSearchCriteria","recallOrderAsync","createRecallQuoteInput","quoteId","recallQuoteAsync","createRecalculateOrderInput","recalculateOrderAsync","createResetAllChargesInput","resetAllChargesAsync","createGetPromotionsInput","getPromotionsAsync","createRecallSalesInvoiceInput","invoiceId","recallSalesInvoiceAsync","createAddOrderInvoiceInput","addOrderInvoiceAsync","createAddInvoicesInput","invoiceIds","addInvoicesAsync","createUpdateCommissionSalesGroupInput","commissionSalesGroup","isUserInitiated","updateCommissionSalesGroupAsync","createAddCouponsInput","couponCodes","isLegacyDiscountCode","addCouponsAsync","createRemoveCouponsInput","removeCouponsAsync","createGetCartLineUserAlertsForAddInput","getCartLineUserAlertsForAddAsync","createGetCartLineUserAlertsInput","getCartLineUserAlertsAsync","createGetChargeCodesInput","getChargeCodesAsync","createGetReceiptTypesInput","getReceiptTypesAsync","createSetInvoiceLinePriceInput","setInvoiceLinePriceAsync","createAddDiscountCodeInput","addDiscountCodeAsync","createGetReturnOptionsInput","getReturnOptionsAsync","createGetConfigurationInput","getConfigurationAsync","createValidateForCheckoutInput","validateForCheckoutAsync","createGetTenderSuggestionsInput","getTenderSuggestionsAsync","retailAction","input","callerContext","execute","callActionOrExecute","chainAction","Error","overrideCacheType","clientTimeoutInMs","setClientTimeoutInMs","AsyncResult","resolve","reject","then","result","catch","error","prototype","isAction","isObservable","constructor","entitySet","entityType","returnType","this","_query","tokens","options","Paging","Sorting","value","count","filter","filterSettings","Top","Skip","expand","propertyName","expands","push","inlineCount","orderBy","Columns","ColumnName","object","action","data","_createODataParameters","_createRequest","undefined","isReturnTypeACollection","setGetAllRecords","isGetAllRecords","operationName","_objectSpread","DataServiceRequest","orgUnitsQuery","orgUnitNumber","OrgUnitNumber","createOrgUnitAsync","createGetTillLayoutInput","includeImage","getTillLayoutAsync","storeSearchCriteria","createGetOrgUnitLocationsByAreaInput","searchArea","deliveryModeTypeFilter","getOrgUnitLocationsByAreaAsync","createSearchOrgUnitLocationsInput","orgUnitLocationSearchCriteria","searchOrgUnitLocationsAsync","createGetOrgUnitConfigurationInput","getOrgUnitConfigurationAsync","createGetStoreHoursInput","getStoreHoursAsync","createGetChannelDeliveryOptionsInput","channelIds","getChannelDeliveryOptionsAsync","createGetAvailableInventoryInput","variantId","getAvailableInventoryAsync","createGetAvailableInventoryNearbyInput","getAvailableInventoryNearbyAsync","createGetProductAvailabilityByDimensionsInput","inventLocationIds","productDimensionCombinations","getProductAvailabilityByDimensionsAsync","createSearchProductAvailabilityInput","orgUnitAvailabilitySearchCriteria","searchProductAvailabilityAsync","createSearchAffiliationsInput","affiliationSearchCriteria","searchAffiliationsAsync","createGetTerminalInfoInput","getTerminalInfoAsync","createGetProductAvailabilityInput","getProductAvailabilityAsync","$","uncurryThis","aCallable","toObject","lengthOfArrayLike","deletePropertyOrThrow","toString","fails","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","test","nativeSort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","index","String","fromCharCode","k","v","a","b","length","charAt","target","proto","forced","comparefn","array","itemsLength","items","arrayLength","x","y","getSortCompare","productListsQuery","createProductListAsync","createGetProductListLinesInput","getProductListLinesAsync","createAddProductListLinesInput","productListLines","addProductListLinesAsync","createUpdateProductListLinesInput","updateProductListLinesAsync","createRemoveProductListLinesInput","removeProductListLinesAsync","createCopyCartToProductListInput","isRewrite","isQuantityAggregate","copyCartToProductListAsync","firefox","match","module","exports","UA","webkit","customersQuery","AccountNumber","createCustomerAsync","customerSearchCriteria","createSearchByFieldsInput","customerSearchByFieldCriteria","CustomerSearchByFieldCriteria","searchByFieldsAsync","createGetByAccountNumbersInput","accountNumbers","getByAccountNumbersAsync","createCreateCustomerTimelineItemInput","customerTimelineItem","createCustomerTimelineItemAsync","createUpdateCustomerTimelineItemInput","updateCustomerTimelineItemAsync","refinerSourceTypes","createGetOrderHistoryInput","getOrderHistoryAsync","createGetOrderShipmentsHistoryInput","nextPageToken","getOrderShipmentsHistoryAsync","createPostNonTransactionalActivityLoyaltyPointsInput","affiliationId","activityTypeId","postNonTransactionalActivityLoyaltyPointsAsync","createGetPurchaseHistoryInput","getPurchaseHistoryAsync","createGetCustomerSearchFieldsInput","getCustomerSearchFieldsAsync","createGetCustomerTimelineItemTypesInput","getCustomerTimelineItemTypesAsync","createGetCustomerTimelineItemsInput","getCustomerTimelineItemsAsync","createGetCustomerTimelineRefinersInput","getCustomerTimelineRefinersAsync","createGetTitlesInput","getTitlesAsync","businessPartnerUsersQuery","b2BUserId","B2BUserId","createBusinessPartnerUserAsync","createRequestAccountStatementInput","accountStatementParameters","requestAccountStatementAsync","createRequestInvoiceCopyInput","deliveryType","requestInvoiceCopyAsync","createGetOperationRequestsInput","startDateTime","endDateTime","getOperationRequestsAsync","createGetCurrentInput","getCurrentAsync","DEPRECATED_HOOK_TYPES","ActionRegistrar","dataActionRegister","getRegistration","getPartnerOverrideAction","partnerDataAction","default","Action","unwrapAction","getAction","registeredAction","registerAction","dataAction","actionRegister","registration","registerHook","hookType","hook","isBrowser","indexOf","StaticTelemetry","log","LogLevel","Warning","hooks","Array","isArray","hookRegistration","Set","forEach","h","add","newRegistration","registerPostHook","registerPreHook","registerPreReadOnlyHook","registerPostReadOnlyHook","registerPreReaderHook","registerPostReaderHook","getPreHooks","actionRegistration","pre","getPostHooks","post","getPreReadHooks","preRead","getPostReadHooks","postRead","getPreReaderHooks","preReader","getPostReaderHooks","postReader","resolveAction","resolveRegistration","preHooks","postHooks","preReadHooks","postReadHooks","preReaderHooks","postReaderHooks","createObservableDataAction","wrappedAction","wrapDataAction","actionWrap","name","inputFunc","isBatched","_action","RegistrationId","registrationId","func","_isBatched","newAction","setProperty","arg1","arg2","ActionError","super","Name","message","status","Object","setPrototypeOf","static","shouldReadFromAppCache","appCache","dataCacheType","shouldWriteToAppCache","isAppCacheData","hasCacheSetting","getCacheObjectType","GET_FROM_RETURNIDENTIFIER","addLocaleInformation","inputs","locale","getCacheKey","endsWith","tmp","_cacheKeyFromInput","_resolveCacheEntryReference","dataServiceRequest","item","requestCache","isWrappingPromise","arguments","cacheValueAsArray","map","cacheObjectType","_cacheObjectType","get","typeName","copyTo","valueItem","isAsyncResult","logTelemetrySource","cacheValue","cacheKey","telemetry","s","ICacheSource","AppCache","verboseLogger","values","RequestCache","readCacheEntriesBasedOnCacheKeyFromReturnType","cacheKeyFromReturnType","_cacheKeyFromReturnType","cacheKeyIdentifierFromReturnType","_cacheKeyIdentifierFromReturnType","entry","shouldRefresh","shouldRefreshAll","cacheEntries","Boolean","cacheEntriesReturn","readCacheEntries","cacheKeyFromInput","entries","cachedValueBasedOnInput","$ref","cachedValueBasedOnInputItem","resolvedRef","_saveEntityToCache","isCacheTypeApplication","isInstance","dataServiceRequestQuery","results","call","identifierValue","existingCacheItem","existingCacheObjectType","existingCacheKeyIdentifierFromReturnType","existingCacheIsReturnTypeACollection","existingCacheTotalCount","_totalCount","type","identifier","isCollection","_existingCacheItem","keys","entryKey","put","instance","saveCacheEntries","metadata","_otherOdata","others","listeners","Map","eventEmitter","window","EventEmitter","on","event","callback","set","emit","_len","args","_key","listener","removeAllListeners","defaultHookTimeoutInMS","CLIENT_HYDRATE_KEY","CLIENT_HYDRATE_TYPE","Timer","timeoutInMS","Promise","setTimeout","bind","ActionTimer","_resolve","ActionExecutor","dataActionOption","_shouldUseInstanceCache","_msdyn365Commerce$pla","checkVersionForFeature","platformSettings","shouldUseInstanceCache","eventId","uuidv1","masterInput","cacheType","shouldCacheOutput","trace","addInputs","async","bypassAppCache","refreshingInputs","unique","_removeDuplicates","actionId","_getActionIdFromInputs","performanceUtils","getPerformanceUtils","executionId","performanceUtilsPackage","Random","Guid","generateGuid","runPreReadonlyDataActionPerformanceHook","internalCache","cache","_executeDataAction","runPostReadonlyDataActionPerformanceHook","isRefreshingAction","_runPreReadHooks","err","_runPreReaderHooks","uncached","needsRefresh","_checkForCachedData","_fetchOutputsAndRunPostReadHook","cachedActions","includes","outputs","_executeBatchedObservableActions","_executeObservableAction","_actionWrapper","Trace","_saveResponseToCache","_checkShouldInteractWithCache","i","cacheItem","getValue","_runPostReadHooks","_runPostReaderHooks","_uniqWith","inputA","inputB","inputsActionId","getActionId","_getActionFromId","hookTimeout","Number","_get2","timer","from","reduce","previousTask","currentTask","race","requestContext","asSystemMetadata","exception","actionResult","prevInput","tmpNextInput","finalNextInput","prevOutput","tmpNextOutput","finalNextOutput","isRefreshing","_inputs","_runPreHooks","e","convertedError","_convertToJSError","CorrelationId","serverSideDataActionTimeoutInMs","clientSideCustomerTimeout","clientSideDataActionTimeoutInMs","promises","_errorCode","ErrorTypeEnum","SERVICE_UNAVAILABLE","ProxyError","toError","_runPostHooks","idx","appCacheData","usingInstanceCache","features","disable_instance_cache","actionName","entityId","isActionError","isTimeoutError","cacheEntry","assign","unresolvedSet","uncachedInputs","asyncOutputs","executor","innerResolve","innerReject","EventHelper","onEventIdFinalCompletion","cachedPromise","run","actionResults","finally","unresolvedIndex","isServiceUnavailable","cachedItem","asyncOutput","refreshing","_interceptCacheForMocks","clientHydrateCacheKey","isClientHydrate","runOn","refresh","disable_bypass_request_cache","existingItem","mockItem","_getMockItem","mockItemJSObject","toJS","cacheNamespace","proxyError","ErrorCode","CatalogsInput","buildCacheKey","base","apiSettings","user","getCatalogsAsync","createCatalogsInput","inputData","isAuthenticated","shouldByPassCache","query","cachebypass","isPageInsightsEnabled","params","pageInsights","REFRESH_ACTIONS_CACHE_KEY","ActionContext","executionParams","cacheKeyMap","refreshConfigs","hasRun","currentActionsInQueue","nextTierCounter","next","spawnChildOnExecute","Debug","currentExecutionTier","threadId","debug","isMaxDepthExceeded","maxDepth","app","platform","getItemFromCache","_endCurrentTier","expectedActionCount","expectedActionsInCurrentTier","moduleTelemetry","Telemetry","isDebug","registerTraceLogger","traceLogger","GenericConsoleLogger","disable_app_cache","getRefreshActions","actionOption","runAllActionsInQueue","inputsArray","current","find","inputIdentifier","asyncResult","tierNum","refreshStartTimeInMS","splice","all","_type","dataArray","inputArray","preparedCacheKey","getAll","cachedEntries","getAllItems","expectedNumberOfChildThreads","nextTierStartingDepth","nextTier","refreshconfigslocal","param","refreshActions","paramExecutor","actionInputs","size","disable_appcache_refresh_await","rf","refreshRequestCache","refreshContext","buildHydratedMockActionContext","MediaLocationsInput","getMediaLocationsForProductAction","ctx","versionGte","process","types","require","productMediaLocations","_ctx$requestContext$a","_ctx$requestContext","parseInt","defaultPageSizeForAPI","productImagesAndVideos","media","MediaTypeValue","Image","Video","DisplayOrder","productMedia","mediaLocation","mediaLoc","Uri","generateImageUrlForOmniChanel","MediaLocationType","AdditionalMediaLocationsInput","typeFilter","All","getAdditionalMediaLocationsForProductAction","productActions","ProductId","ChannelId","CatalogId","MediaUsageTypeValue","filteredMedia","File","AltText","GetCustomerInput","getCustomerActionDataAction","response","warning","token","businessPartnersQuery","businessPartnerId","BusinessPartnerId","createBusinessPartnerAsync","createCreateProspectInput","businessPartnerProspect","createProspectAsync","createPromoteToSellerInput","promoteToSellerAsync","createGetManagedBusinessPartnersInput","getManagedBusinessPartnersAsync","createGetUsersInput","getUsersAsync","IS_PURE","NativePromiseConstructor","getBuiltIn","isCallable","speciesConstructor","promiseResolve","defineBuiltIn","NativePromisePrototype","real","onFinally","C","isFunction","method","unsafe","EMPTY","convertToString","obj","accumulator","depth","prop","hasOwnProperty","stringifyValue","join","hasElements","isObjectNotEmptyOrNull","isEmpty","isNullOrWhitespace","returnValue","trim","format","replace","regexp","RegExp","$parseFloat","global","parseFloat","commerceListsQuery","createCommerceListAsync","createGetByCustomerInput","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","ProxyErrorSDK","errorCode","errorMessage","canRetry","localizedErrorMessage","formatData","extraData","_canRetry","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","headers","body","_extraData","errorName","ErrorMessage","LocalizedErrorMessage","CanRetry","requestUri","statusCode","commerceException","ErrorTitleResourceId","EventLevel","EventChannel","EventType","Utils","DebuggingConsoleSink","setSessionInfo","appSessionId","userSessionId","userId","tenantId","offlineAvailability","offlineCurrentMode","setInstrumentationKey","instrumentationKey","writeEvent","LoggerBase","version","channel","level","keywords","task","opCode","loggingSink","enumType","modelManagersRetailServerRequestStarted","requestId","requestUrl","Informational","modelManagersRetailServerRequestError","Operational","modelManagersRetailServerRequestFinished","genericWarning","Tracer","sink","addLoggingSink","informationformat","TracingOn","GetMessage","apply","TracerDynamicsError","warningFormat","_len2","_key2","errorFormat","_len3","_key3","errors","formatString","_len4","_key4","errorString","JSON","stringify","uniqueFunctionName","counter","Counters","PerformanceCounters","Count","now","Date","getTime","Timers","startTime","pop","TotalTime","Information","_len5","_key5","TracerDynamics","slice","_initialized","init","globalThis","whitespaces","Symbol","ITERATOR","iterator","FORCED","Infinity","string","trimmedString","salesOrdersQuery","createSalesOrderAsync","salesOrderSearchCriteria","createSearchSalesTransactionsByReceiptIdInput","searchSalesTransactionsByReceiptIdAsync","createSearchOrdersInput","orderSearchCriteria","searchOrdersAsync","createGetFulfillmentLinesInput","fulfillmentLineSearchCriteria","getFulfillmentLinesAsync","createGetReceiptsInput","customerOrderType","getReceiptsAsync","createSendReceiptInput","recipientAddresses","sendReceiptAsync","createGetGiftReceiptsInput","salesLineNumbers","SalesLineNumbers","getGiftReceiptsAsync","createGetByReceiptIdInput","orderStoreNumber","orderTerminalId","getByReceiptIdAsync","createGetSalesOrderDetailsByTransactionIdInput","getSalesOrderDetailsByTransactionIdAsync","createGetSalesOrderDetailsBySalesIdInput","getSalesOrderDetailsBySalesIdAsync","createGetOrderByChannelReferenceLookupCriteriaInput","channelReferenceLookupCriteria","getOrderByChannelReferenceLookupCriteriaAsync","createGetSalesOrderDetailsByQuotationIdInput","quotationId","getSalesOrderDetailsByQuotationIdAsync","createGetOrderOriginatorsInput","orderOriginatorSearchCriteria","getOrderOriginatorsAsync","createGetSalesOrdersByLookupCriteriaInput","salesOrdersLookupCriteria","getSalesOrdersByLookupCriteriaAsync","createShipFulfillmentLinesInput","shipFulfillmentLines","ShipFulfillmentLines","shipFulfillmentLinesAsync","createAcceptFulfillmentLinesInput","fulfillmentLineParameter","FulfillmentLineParameter","acceptFulfillmentLinesAsync","createPickFulfillmentLinesInput","pickFulfillmentLinesAsync","createPackFulfillmentLinesInput","packFulfillmentLinesAsync","createMarkFulfillmentLinesAsPackedInput","markFulfillmentLinesAsPackedAsync","createMarkAsPickedInput","markAsPickedAsync","createGetFulfillmentPickingListsInput","pickingListFulfillmentLine","getFulfillmentPickingListsAsync","createGetFulfillmentPackingSlipsInput","packFulfillmentLines","getFulfillmentPackingSlipsAsync","createGetFulfillmentPackingSlipsByIdInput","packingSlipId","PackingSlipId","getFulfillmentPackingSlipsByIdAsync","createRejectFulfillmentLinesInput","rejectFulfillmentLines","RejectFulfillmentLines","rejectFulfillmentLinesAsync","createGetInvoicesBySalesIdInput","getInvoicesBySalesIdAsync","createGetOrderInvoicesInput","getOrderInvoicesAsync","createGetInvoicesInput","invoiceSearchCriteria","getInvoicesAsync","createGetInvoiceDetailsInput","invoiceDetailsSearchCriteria","getInvoiceDetailsAsync","createGetInvoicedSalesLinesBySalesIdsInput","salesIds","getInvoicedSalesLinesBySalesIdsAsync","createSearchInvoicedSalesLinesInput","invoicedSalesLinesSearchCriteria","searchInvoicedSalesLinesAsync","createCreatePickingListInput","createPickingListAsync","createCreatePickingListForItemsInput","pickAndPackSalesLineParameters","createPickingListForItemsAsync","createGetPickingListsInput","getPickingListsAsync","createCreatePackingSlipInput","createPackingSlipAsync","createGetFulfillmentLineUserAlertsInput","fulfillmentOperation","FulfillmentOperation","getFulfillmentLineUserAlertsAsync","createCheckInForOrderPickupInput","channelReferenceId","checkInForOrderPickupAsync","createUpdateConfirmedShipDateInput","confirmedShipDateChange","updateConfirmedShipDateAsync","createRequestCancellationInput","requestCancellationAsync","createConfirmInput","confirmAsync","createGetPackingSlipsDataInput","getPackingSlipsDataAsync","normalizeCacheKey","toUpperCase","transaction","observable","deep","_value","toCache","del","flushAll","_handlers","_attachHandler","handler","_executeHandlers","onFail","onSuccess","_updateStatus","_reject","reason","getType","onfinally","failed","toStringTag","newStatus","isError","__decorate","SERVER_ERROR","SERVER_TIMEOUT","RETAIL_SERVER_REDIRECT_ERROR","GENERICERRORMESSAGE","MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR","BAD_REQUEST","NOT_AUTHORIZIED","FORBIDDEN","PRECONDITION_FAILED","RETURN_NO_ORDERS_FOUND","DeviceActivationErrorsForwardLinks","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANNELDATABASECONNECTIONFAILED","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REALTIMESERVICECONNECTIONFAILED","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TERMINALNOTASSIGNEDTOSTORE","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_USERNOTASSIGNEDTOSTORE","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCORRECTSTAFFIDORPASSWORD","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEVICEALREADYACTIVATED","ErrorHelper","errorResourceId","AGGREGATED_ERROR_RESOUCEIDS","numErrors","isRetryable","errorResourceIds","formatNumberWidth","append","parseTimeRE","parseDateTimeRE","parseDateTimeOffset","withOffset","nullOnError","parts","exec","offset","timezone","year","ms","ns","substring","hours","minutes","seconds","direction","d","m","parseTimezone","setUTCFullYear","setUTCHours","isNaN","valueOf","__edmType","__offset","__ns","jsonLightReadStringPropertyValue","propertyType","recognizeDates","EDM","propertyValue","toLowerCase","duration","years","months","days","parseDuration","dateStr","time","timezoneOffsetIndex","isOboRequest","catalogsQuery","createProductCatalogAsync","createGetCatalogsInput","activeOnly","categoriesQuery","createCategoryAsync","createGetCategoriesInput","getCategoriesAsync","createGetAttributesInput","getAttributesAsync","createGetCatalogAttributesInput","categoryIds","getCatalogAttributesAsync","createGetChildrenInput","getChildrenAsync","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","buf","node","clockseq","seedBytes","msecs","nsecs","dt","tl","tmh","n","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rnds","r","Math","random","ErrorParser","isObo","handled","redirectUrl","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","URL","location","href","searchParams","rdc","parseError","responseText","jsonResponse","parse","ErrorResourceId","Message","MapResponseStatusCodeToError","ex","errorResponse","commerceErrors","odataError","localizedMessage","LocalizedMessage","exceptionType","convertExceptionToErrors","serverException","DataValidationExceptionType","CartValidationExceptionType","dataValidation","getErrorsFromDataValidationFailures","ValidationResults","StorageExceptionType","failures","failure","ErrorContext","contentType","bodyString","Exception","parseJSONError","normalHeaders","accept","normalizeHeaders","lowerName","normalName","val","defaultHttpClient","callbackParameterName","formatQueryString","enableJsonpCallback","success","clientTimeout","abort","handleTimeout","cancelToken","axios","source","done","cancel","url","isAbsoluteUrl","authenticationCreds","username","password","axiosTimeout","timeoutMS","___initialData___","_initialData$_clientP","_initialData$_clientP2","initialData","rtype","getCacheObjectValueFromReturnType","rTypeLowerCase","clientTimeoutMap","_clientPlatformSetting","clientTimeoutMapInMs","pageInsightsData","Request","Headers","Method","Body","Response","StatusText","StatusCode","auth","timeout","axiosResponse","_callerContext$reques","insightsKey","insightsData","axiosError","_callerContext$reques2","ODataHttpRequest","useJsonLight","inferJsonLightFeedAsObject","prepareRequest","Accept","write","maxDataServiceVersion","jsonHandler","invokeRequest","httpClient","jsonMediaType","ODATA_VERSION","ODATA_MAX_VERSION","str","contentTypeParts","split","properties","len","contentTypeParams","mediaType","jsonContentType","createReadWriteContext","contentTypeStr","dataServiceVersion","rwContext","versionRE","getDataServiceVersion","headerVersion","matches","handlerWrite","cType","CONTENT_TYPE_HEADER_NAME","writeContext","maxVersion","left","right","leftParts","rightParts","leftVersion","rightVersion","ContentType","contentTypeObj","property","contentTypeToString","handlerRead","recommendationsQuery","getElementsAsync","recommendationCriteria","createGetElementsInput","byteToHex","substr","bth","tryToString","$TypeError","TypeError","O","P","GET","POST","ODATA_TOTAL_COUNT_PROPERTY","serverWorkerNotUpdated","DEFAULT_HEADER","Prefer","OBO_REQUEST","GET_ACCOUNT_SELECTION_COOKIE","fetchCommerceModels","isServiceWorkerSupportedOnClient","navigator","parseOdataResult","resultType","serviceWorker","Models","skipSerializationFromSW","shouldSkipSerializationFromSW","enable_service_worker","disableRetailProxySW","console","ready","initServerWorker","getSerializedResponseFromServiceWorker","resultSet","hasNextPage","timerId","dynamicImportPromise","serializePromise","messageChannel","MessageChannel","port1","onmessage","serializedData","clearTimeout","active","postMessage","payload","port2","_actionId","getDataCacheType","_clientTimeoutInMs","recurseEverything","_hasOperationName","_method","getActionIdFromInput","entityIdentifier","Key","buildCacheFromInput","batchRequestUri","_callerContext","baseUrl","totalCount","queryParams","otherOdataProperties","requests","odataBatchRequest","__batchRequests","batchRequests","changeRequests","_id","odataRequest","_requestUri","toJson","__changeRequests","parent","modifyDataInPlace","clone","arrayToJson","toDateTimeOffset","dateTime","pad","sign","getTimezoneOffset","abs","floor","formattedKey","parameter","paramValue","encodeURIComponent","parameterSeparator","cacheKeyValue","oun","getRequestUri","buildQueryHeader","loadPage","getAllPages","executeBatch","buildBatchRequest","responses","parseBatchResponses","__batchResponses","Errors","parseErrorMessage","formatKey","formatFunctionParameter","addParameter","orderByColumns","column","IsDescending","loadPageResults","concat","headerName","cookies","isOBORequest","accountSelectionCustomerId","accountSelectionCookie","accountSelectionCustomerIdParts","tokenName","tokenValue","accessToken","cookieData","appSessionCookie","userSessionCookie","_appSessionCookie$val","_userSessionCookie$va","otherOdata","setMetadata","odataList","newData","batchResponses","__changeResponses","scanResultsQuery","scannedText","ScannedText"],"sourceRoot":""}