{"version":3,"sources":["jsdelivr-header.js","/npm/@wix/auto_sdk_ecom_tax-calculation@1.0.58/index.ts","/npm/@wix/auto_sdk_ecom_tax-calculation@1.0.58/src/gateways-billing-v1-tax-calculation-gateway-tax-calculation.universal.ts","/npm/@wix/auto_sdk_ecom_tax-calculation@1.0.58/src/gateways-billing-v1-tax-calculation-gateway-tax-calculation.http.ts","/npm/@wix/auto_sdk_ecom_tax-calculation@1.0.58/src/gateways-billing-v1-tax-calculation-gateway-tax-calculation.public.ts","/npm/@wix/auto_sdk_ecom_tax-calculation@1.0.58/src/gateways-billing-v1-tax-calculation-gateway-tax-calculation.context.ts"],"names":[],"mappings":"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","file":"/npm/@wix/auto_sdk_ecom_tax-calculation@1.0.58/build/cjs/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/@wix/auto_sdk_ecom_tax-calculation@1.0.58/build/cjs/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","export * from './src/gateways-billing-v1-tax-calculation-gateway-tax-calculation.context.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport {\n  renameKeysFromSDKRequestToRESTRequest,\n  renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport * as ambassadorWixGatewaysBillingV1TaxCalculationGateway from './gateways-billing-v1-tax-calculation-gateway-tax-calculation.http.js';\nimport { transformSDKAddressToRESTAddress } from '@wix/sdk-runtime/transformations/address';\nimport { transformRESTAddressToSDKAddress } from '@wix/sdk-runtime/transformations/address';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\n\nconst TRANSFORM_PATHS_0 = [{ path: 'addresses', isRepeated: true }];\n\nexport interface TaxCalculationGateway {\n  /** @format GUID */\n  _id?: string | null;\n}\n\nexport interface CalculateTaxRequest {\n  /**\n   * Optional ID of the entity that tax is being calculated for. For example, a cart ID.\n   * @format GUID\n   * @immutable\n   */\n  externalId?: string | null;\n  /**\n   * 3-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format.\n   * @format CURRENCY\n   */\n  currency?: string;\n  /**\n   * Array of addresses. Each line item can individually reference the address to apply with `lineItems.addressIndex`.\n   * @minSize 1\n   * @maxSize 3\n   */\n  addresses: Address[];\n  /**\n   * Line items to calculate tax for.\n   * @minSize 1\n   * @maxSize 300\n   */\n  lineItems: LineItem[];\n  /**\n   * Contact ID to use for tax exemptions.\n   * @internal\n   * @format GUID\n   * @deprecated Contact ID to use for tax exemptions.\n   * @replacedBy exempt_details.contact_id\n   * @targetRemovalDate 2026-01-01\n   */\n  contactId?: string | null;\n  /**\n   * Tax exempt group ID to use for tax exemptions.\n   * @internal\n   * @format GUID\n   * @deprecated Tax exempt group ID to use for tax exemptions.\n   * @replacedBy exempt_details.tax_exempt_group_id\n   * @targetRemovalDate 2026-01-01\n   */\n  taxExemptGroupId?: string | null;\n  /**\n   * Tax exempt details.\n   * @internal\n   */\n  exemptDetails?: ExemptCalculationDetails;\n}\n\n/** Wix common address format for physical address to use if you plan to store addresses in your service. */\nexport interface Address {\n  /**\n   * 2-letter country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format.\n   * @format COUNTRY\n   */\n  country?: string | null;\n  /**\n   * Subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n   * @maxLength 50\n   */\n  subdivision?: string | null;\n  /**\n   * City name.\n   * @maxLength 100\n   */\n  city?: string | null;\n  /**\n   * Postal or zip code.\n   * @maxLength 50\n   */\n  postalCode?: string | null;\n  /**\n   * Main address line, usually street and number as free text.\n   * @maxLength 200\n   */\n  addressLine1?: string | null;\n  /**\n   * Free text providing more detailed address information, such as apartment, suite, or floor.\n   * @maxLength 200\n   */\n  addressLine2?: string | null;\n}\n\n/** Line items to calculate tax for. */\nexport interface LineItem {\n  /**\n   * Line item ID.\n   * @minLength 1\n   * @maxLength 100\n   */\n  _id?: string;\n  /**\n   * Line item name to display.\n   * @maxLength 250\n   */\n  itemName?: string | null;\n  /**\n   * Line item quantity.\n   * @min 1\n   * @max 100000\n   */\n  quantity?: number;\n  /**\n   * Line item price.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { lte:1000000000000000 }\n   */\n  price?: string;\n  /**\n   * Stock keeping unit for this line item. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).\n   * @maxLength 40\n   */\n  itemCode?: string | null;\n  /**\n   * Tax group ID for this line item. If not provided, the default tax group applies.\n   * @format GUID\n   */\n  taxGroupId?: string | null;\n  /**\n   * ID of the app providing the catalog for this line item.\n   *\n   * You can get your app's ID from its page in the [app dashboard](https://dev.wix.com/dc3/my-apps/).\n   *\n   * For items from Wix catalogs, the following values always apply:\n   * + Wix Stores: `\"215238eb-22a5-4c36-9e7b-e7c08025e04e\"`\n   * + Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\n   * + Wix Restaurants: `\"9a5d83fd-8570-482e-81ab-cfa88942ee60\"`\n   * @format GUID\n   */\n  appId?: string | null;\n  /** Whether tax is included in the price. */\n  taxIncludedInPrice?: boolean | null;\n  /** Index of the address from `addresses` to use to calculate tax for this specific line item. The index is zero-based. */\n  addressIndex?: AddressIndex;\n}\n\n/** Index of the address from `addresses` to use to calculate tax for this specific line item. The index is zero-based. */\nexport interface AddressIndex extends AddressIndexAddressIndexOptionsOneOf {\n  /** Single address to use for a sale location when only one address is required for tax calculations. The index is zero-based. */\n  singleAddress?: number;\n  /**\n   * Multiple addresses to use for a sale. For example, some tax calculations may require both the address where an item is shipped from,\n   * as well as the address the item is shipped to.\n   */\n  multipleAddresses?: MultipleAddresses;\n}\n\n/** @oneof */\nexport interface AddressIndexAddressIndexOptionsOneOf {\n  /** Single address to use for a sale location when only one address is required for tax calculations. The index is zero-based. */\n  singleAddress?: number;\n  /**\n   * Multiple addresses to use for a sale. For example, some tax calculations may require both the address where an item is shipped from,\n   * as well as the address the item is shipped to.\n   */\n  multipleAddresses?: MultipleAddresses;\n}\n\n/**\n * Multiple addresses to use for a sale. For example, some tax calculations may require both the address where an item\n * is shipped from, as well as the address the item is shipped to.\n */\nexport interface MultipleAddresses {\n  /** Index of the origin address. */\n  origin?: number;\n  /** Index of the destination address. */\n  destination?: number;\n}\n\nexport interface ExemptCalculationDetails\n  extends ExemptCalculationDetailsExemptByOptionsOneOf {\n  /**\n   * Exempt group ID to use for exemption calculation when mode is EXEMPT_GROUP.\n   * @internal\n   * @format GUID\n   */\n  exemptGroupId?: string | null;\n  /**\n   * Contact ID to use to use for exemption calculation when mode is CONTACT.\n   * @internal\n   * @format GUID\n   */\n  contactId?: string | null;\n  /** Supports different logic for calculating the exempt group id. */\n  exemptBy?: ExemptByWithLiterals;\n}\n\n/** @oneof */\nexport interface ExemptCalculationDetailsExemptByOptionsOneOf {\n  /**\n   * Exempt group ID to use for exemption calculation when mode is EXEMPT_GROUP.\n   * @internal\n   * @format GUID\n   */\n  exemptGroupId?: string | null;\n  /**\n   * Contact ID to use to use for exemption calculation when mode is CONTACT.\n   * @internal\n   * @format GUID\n   */\n  contactId?: string | null;\n}\n\nexport enum ExemptBy {\n  /** Exempt calculation should be based on tax exempt group. */\n  EXEMPT_GROUP = 'EXEMPT_GROUP',\n  /** Exempt calculation should be based on contactId. */\n  CONTACT = 'CONTACT',\n}\n\n/** @enumType */\nexport type ExemptByWithLiterals = ExemptBy | 'EXEMPT_GROUP' | 'CONTACT';\n\nexport interface CalculateTaxResponse {\n  /**\n   * Optional ID of the entity that tax is being calculated for. For example, a cart ID.\n   * @format GUID\n   * @immutable\n   */\n  externalId?: string | null;\n  /**\n   * 3-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format.\n   * @format CURRENCY\n   */\n  currency?: string;\n  /**\n   * Array of addresses. Each line item can individually reference the address to apply with `lineItems.addressIndex`.\n   * @minSize 1\n   * @maxSize 3\n   */\n  addresses?: Address[];\n  /** Summary of the tax calculated. */\n  taxSummary?: TaxSummary;\n  /**\n   * Details of each tax applied to each line item.\n   * @minSize 1\n   * @maxSize 300\n   */\n  lineItemTaxDetails?: LineItemTaxDetails[];\n  /**\n   * Errors that occurred during the tax calculation.\n   * @maxSize 100\n   */\n  errors?: ApplicationError[];\n}\n\nexport interface TaxSummary {\n  /**\n   * Total price for all line items.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  totalAmount?: string;\n  /**\n   * Total amount of tax calculated for all line items.\n   * Note that due to rounding, `totalTax` may not equal the sum of `lineItemTaxDetails.taxSummary.taxAmount`.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  totalTax?: string;\n  /**\n   * Total taxable amount for all line items.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  totalTaxableAmount?: string;\n  /**\n   * Total amount of `totalTax` that is included in price. Applies to line items with `taxIncludedInPrice` set to `true`.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  totalTaxIncludedInPrice?: string;\n  /**\n   * Array of each tax applied, grouped by `\"jurisdiction\"`, `\"jurisdictionType\"`, `\"taxType\"`, `\"taxName\"` and `\"rate\"`.\n   * @maxSize 50\n   */\n  aggregatedTaxBreakdown?: AggregatedTaxBreakdown[];\n  /**\n   * Total exempt amount for all line items.\n   * @internal\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  totalExempt?: string | null;\n  /**\n   * Default name of the tax that was calculated.\n   * @internal\n   * @maxLength 200\n   */\n  taxName?: string | null;\n}\n\n/**\n * The summary of the tax breakdown for all the line items. It will hold for each tax name, the aggregated tax amount paid for it and the tax rate.\n * Tax breakdown is the tax amount split to the tax authorities that applied on the line item.\n *\n * Note: Because that the tax is calculated only on the taxable amount, the tax amount may be looks strange.\n * e.g. if you pay 100$ and the tax applies only on 50$ from it with tax rate of 10%,\n * then the tax rate will be remain 10% but tax amount in the breakdown will be 5$ instead of 10$.\n */\nexport interface AggregatedTaxBreakdown {\n  /**\n   * Name of the tax that was calculated.\n   * @maxLength 200\n   */\n  taxName?: string;\n  /**\n   * Type of tax that was calculated.\n   * @maxLength 200\n   */\n  taxType?: string;\n  /**\n   * Jurisdiction that taxes were calculated for.\n   * @maxLength 200\n   */\n  jurisdiction?: string;\n  /** Type of jurisdiction that taxes were calculated for. */\n  jurisdictionType?: JurisdictionTypeWithLiterals;\n  /**\n   * Tax rate used for this jurisdiction, as a decimal. For example, 10% tax is `\"0.1000\"` and 200% tax is `\"2.0000\"`.\n   * @decimalValue options { gte:0, maxScale:6 }\n   */\n  rate?: string;\n  /**\n   * Total amount of this tax for this jurisdiction.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  aggregatedTaxAmount?: string;\n  /**\n   * Total taxable amount of this tax.\n   * @internal\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  aggregatedTaxableAmount?: string;\n  /**\n   * Total exempt amount of this tax.\n   * @internal\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:3 }\n   */\n  aggregatedExemptAmount?: string | null;\n}\n\n/** Type of jurisdiction that taxes were calculated for. For example, `\"State\"`, `\"County\"`, `\"City\"`, `\"Special\"`, etc. */\nexport enum JurisdictionType {\n  UNDEFINED = 'UNDEFINED',\n  COUNTRY = 'COUNTRY',\n  STATE = 'STATE',\n  COUNTY = 'COUNTY',\n  CITY = 'CITY',\n  SPECIAL = 'SPECIAL',\n}\n\n/** @enumType */\nexport type JurisdictionTypeWithLiterals =\n  | JurisdictionType\n  | 'UNDEFINED'\n  | 'COUNTRY'\n  | 'STATE'\n  | 'COUNTY'\n  | 'CITY'\n  | 'SPECIAL';\n\n/** Tax details for a specific line item. */\nexport interface LineItemTaxDetails {\n  /**\n   * Line item ID.\n   * @minLength 1\n   * @maxLength 100\n   */\n  _id?: string;\n  /**\n   * Line item name to display.\n   * @maxLength 250\n   */\n  itemName?: string | null;\n  /**\n   * Line item quantity.\n   * @min 1\n   * @max 100000\n   */\n  quantity?: number;\n  /**\n   * Array of each tax applied, grouped by `jurisdiction`.\n   * @maxSize 7\n   */\n  taxBreakdown?: TaxBreakdown[];\n  /** Summary of this line item's total price and tax. */\n  taxSummary?: LineItemTaxSummary;\n  /** Index of the address from `addresses` to use to calculate tax for this specific line item. The index is zero-based. */\n  addressIndex?: AddressIndex;\n  /** Whether tax is included in the price. */\n  taxIncludedInPrice?: boolean;\n}\n\n/** A detailed description of all the tax authorities applied on this item. */\nexport interface TaxBreakdown {\n  /**\n   * Jurisdiction that taxes were calculated for.\n   * @maxLength 200\n   */\n  jurisdiction?: string | null;\n  /**\n   * Non-taxable amount of the price.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4, gte:0 }\n   */\n  nonTaxableAmount?: string | null;\n  /**\n   * Tax rate used for this jurisdiction, as a decimal. For example, 10% tax is `\"0.1000\"` and 200% tax is `\"2.0000\"`.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:6, gte:0 }\n   */\n  rate?: string | null;\n  /**\n   * Amount of this tax calculated for this jurisdiction.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  taxAmount?: string | null;\n  /**\n   * Taxable amount of the price.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4, gte:0 }\n   */\n  taxableAmount?: string | null;\n  /**\n   * Type of tax that was calculated. For example, `\"Sales Tax\"`, `\"Income Tax\"`, `\"Value Added Tax\"`, etc.\n   * @maxLength 200\n   */\n  taxType?: string | null;\n  /**\n   * Name of the tax that was calculated. For example, `\"NY State Sales Tax\"`, `\"Quebec GST\"`, etc.\n   * @maxLength 200\n   */\n  taxName?: string | null;\n  /** Type of jurisdiction that taxes were calculated for. For example, `\"State\"`, `\"Çounty\"`, `\"City\"`, `\"Special\"`, etc. */\n  jurisdictionType?: JurisdictionTypeWithLiterals;\n  /**\n   * Amount of the price that was exempt from this authority.\n   * @internal\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:3, gte:0 }\n   */\n  exemptAmount?: string | null;\n}\n\nexport interface LineItemTaxSummary {\n  /**\n   * Total price for this line item.\n   * To determine the price for each individual unit of this line item, divide by `quantity`.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { lte:1000000000000000 }\n   */\n  fullPrice?: string | null;\n  /**\n   * Total amount of tax calculated for this line item.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  taxAmount?: string;\n  /**\n   * Total taxable amount for this line item.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  taxableAmount?: string;\n  /**\n   * ID of the calculator app that calculated tax for this line item.\n   * @maxLength 50\n   */\n  appId?: string | null;\n  /**\n   * Total exempt amount or this line item.\n   * @internal\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:4 }\n   */\n  exemptAmount?: string | null;\n}\n\nexport interface ApplicationError {\n  /** Error code. */\n  code?: string;\n  /** Description of the error. */\n  description?: string;\n  /** Data related to the error. */\n  data?: Record<string, any> | null;\n}\n\nexport interface ListTaxCalculatorsRequest {}\n\nexport interface ListTaxCalculatorsResponse {\n  /**\n   * Retrieved tax calculators.\n   * @maxSize 10\n   */\n  taxCalculatorDetails?: TaxCalculatorDetails[];\n}\n\nexport interface TaxCalculatorDetails {\n  /**\n   * ID of the tax calculator.\n   * @format GUID\n   */\n  appId?: string;\n  /**\n   * Display name of the tax calculator.\n   * @minLength 1\n   * @maxLength 200\n   */\n  displayName?: string;\n  /**\n   * List of countries, in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format, that the calculator does not support.\n   * @format COUNTRY\n   * @maxSize 195\n   */\n  unsupportedCountries?: string[];\n}\n\nexport interface AggregateTaxBreakdownsRequest {\n  /**\n   * Array of tax breakdowns to aggregate.\n   * @maxSize 200\n   */\n  taxBreakdowns?: TaxBreakdown[];\n  /**\n   * 3-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format.\n   * @format CURRENCY\n   */\n  currency?: string;\n}\n\nexport interface AggregateTaxBreakdownsResponse {\n  /**\n   * Array of each aggregated tax breakdowns, grouped by `\"jurisdiction\"`, `\"jurisdictionType\"`, `\"taxType\"`, `\"taxName\"` and `\"rate\"`.\n   * @maxSize 50\n   */\n  aggregatedTaxBreakdown?: AggregatedTaxBreakdown[];\n}\n\n/** @docsIgnore */\nexport type CalculateTaxApplicationErrors =\n  | {\n      code?: 'INVALID_LINE_ITEM_ADDRESS_INDEX';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'MISSING_TAXABLE_ADDRESS';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'MISSING_COUNTRY_IN_ADDRESS';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'MISSING_SUBDIVISION_IN_ADDRESS';\n      description?: string;\n      data?: Record<string, any>;\n    };\n\n/**\n * Calculates tax for the provided line items.\n *\n * Tax is calculated for each line item based on the tax region\n * that corresponds to the address provided in `lineItems.addressIndex` and the tax group in `taxGroupId`. If no tax region is found for\n * the line item's address then no tax will be calculated for this line item.\n *\n * The tax is calculated by a tax calculator app installed on the site.\n * Call List Tax Calculators to see which tax calculators are available.\n * To provide your own tax calculations, use the Tax Calculation service plugin.\n *\n * The breakdown of calculated tax returned, includes:\n * + `taxSummary`: The overall total tax calculated.\n * + `taxSummary.aggregatedTaxBreakdown`: The total tax calculated for each jurisdiction.\n * + `lineItemTaxDetails.taxSummary`: The total tax calculated for each line item.\n * + `lineItemTaxDetails.taxBreakdown`: The tax calculated for each line item in each jurisdiction.\n * @public\n * @requiredField options.addresses\n * @requiredField options.lineItems\n * @requiredField options.lineItems._id\n * @requiredField options.lineItems.addressIndex\n * @requiredField options.lineItems.price\n * @param options - Calculate tax options.\n * @permissionId BILLING.CALCULATE_TAX\n * @applicableIdentity APP\n * @fqn wix.billing.v1.TaxCalculation.CalculateTax\n */\nexport async function calculateTax(\n  options?: NonNullablePaths<\n    CalculateTaxOptions,\n    | `addresses`\n    | `lineItems`\n    | `lineItems.${number}._id`\n    | `lineItems.${number}.addressIndex`\n    | `lineItems.${number}.price`,\n    2\n  >\n): Promise<\n  NonNullablePaths<\n    CalculateTaxResponse,\n    | `currency`\n    | `addresses`\n    | `taxSummary.totalAmount`\n    | `taxSummary.totalTax`\n    | `taxSummary.totalTaxableAmount`\n    | `taxSummary.totalTaxIncludedInPrice`\n    | `taxSummary.aggregatedTaxBreakdown`\n    | `taxSummary.aggregatedTaxBreakdown.${number}.taxName`\n    | `taxSummary.aggregatedTaxBreakdown.${number}.taxType`\n    | `taxSummary.aggregatedTaxBreakdown.${number}.jurisdiction`\n    | `taxSummary.aggregatedTaxBreakdown.${number}.jurisdictionType`\n    | `taxSummary.aggregatedTaxBreakdown.${number}.rate`\n    | `taxSummary.aggregatedTaxBreakdown.${number}.aggregatedTaxAmount`\n    | `lineItemTaxDetails`\n    | `lineItemTaxDetails.${number}._id`\n    | `lineItemTaxDetails.${number}.quantity`\n    | `lineItemTaxDetails.${number}.taxSummary.taxAmount`\n    | `lineItemTaxDetails.${number}.taxSummary.taxableAmount`\n    | `lineItemTaxDetails.${number}.addressIndex.singleAddress`\n    | `lineItemTaxDetails.${number}.addressIndex.multipleAddresses.origin`\n    | `lineItemTaxDetails.${number}.addressIndex.multipleAddresses.destination`\n    | `lineItemTaxDetails.${number}.taxIncludedInPrice`\n    | `errors`\n    | `errors.${number}.code`\n    | `errors.${number}.description`,\n    4\n  > & {\n    __applicationErrorsType?: CalculateTaxApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = transformPaths(\n    renameKeysFromSDKRequestToRESTRequest({\n      externalId: options?.externalId,\n      currency: options?.currency,\n      addresses: options?.addresses,\n      lineItems: options?.lineItems,\n      contactId: options?.contactId,\n      taxExemptGroupId: options?.taxExemptGroupId,\n      exemptDetails: options?.exemptDetails,\n    }),\n    [\n      {\n        transformFn: transformSDKAddressToRESTAddress,\n        paths: TRANSFORM_PATHS_0,\n      },\n    ]\n  );\n\n  const reqOpts =\n    ambassadorWixGatewaysBillingV1TaxCalculationGateway.calculateTax(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTAddressToSDKAddress,\n          paths: TRANSFORM_PATHS_0,\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          externalId: '$[0].externalId',\n          currency: '$[0].currency',\n          addresses: '$[0].addresses',\n          lineItems: '$[0].lineItems',\n          contactId: '$[0].contactId',\n          taxExemptGroupId: '$[0].taxExemptGroupId',\n          exemptDetails: '$[0].exemptDetails',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface CalculateTaxOptions {\n  /**\n   * Optional ID of the entity that tax is being calculated for. For example, a cart ID.\n   * @format GUID\n   * @immutable\n   */\n  externalId?: string | null;\n  /**\n   * 3-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format.\n   * @format CURRENCY\n   */\n  currency?: string;\n  /**\n   * Array of addresses. Each line item can individually reference the address to apply with `lineItems.addressIndex`.\n   * @minSize 1\n   * @maxSize 3\n   */\n  addresses: Address[];\n  /**\n   * Line items to calculate tax for.\n   * @minSize 1\n   * @maxSize 300\n   */\n  lineItems: LineItem[];\n  /**\n   * Contact ID to use for tax exemptions.\n   * @internal\n   * @format GUID\n   * @deprecated Contact ID to use for tax exemptions.\n   * @replacedBy exempt_details.contact_id\n   * @targetRemovalDate 2026-01-01\n   */\n  contactId?: string | null;\n  /**\n   * Tax exempt group ID to use for tax exemptions.\n   * @internal\n   * @format GUID\n   * @deprecated Tax exempt group ID to use for tax exemptions.\n   * @replacedBy exempt_details.tax_exempt_group_id\n   * @targetRemovalDate 2026-01-01\n   */\n  taxExemptGroupId?: string | null;\n  /**\n   * Tax exempt details.\n   * @internal\n   */\n  exemptDetails?: ExemptCalculationDetails;\n}\n\n/**\n * Retrieves a list of installed tax calculators.\n *\n * Wix uses these calculators to calculate tax.\n * @public\n * @permissionId BILLING.TAX_CALCULATORS_READ\n * @applicableIdentity APP\n * @fqn wix.billing.v1.TaxCalculation.ListTaxCalculators\n */\nexport async function listTaxCalculators(): Promise<\n  NonNullablePaths<\n    ListTaxCalculatorsResponse,\n    | `taxCalculatorDetails`\n    | `taxCalculatorDetails.${number}.appId`\n    | `taxCalculatorDetails.${number}.displayName`,\n    2\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[0] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n  const reqOpts =\n    ambassadorWixGatewaysBillingV1TaxCalculationGateway.listTaxCalculators(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {},\n        singleArgumentUnchanged: false,\n      },\n      []\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nfunction resolveWixBillingV1TaxCalculationUrl(\n  opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n  const domainToMappings = {\n    'manage._base_domain_': [\n      {\n        srcPath: '/billing/v1/calculate-tax',\n        destPath: '/v1/calculate-tax',\n      },\n      {\n        srcPath: '/billing/v1/list-tax-calculators',\n        destPath: '/v1/list-tax-calculators',\n      },\n    ],\n    'www.wixapis.com': [\n      {\n        srcPath: '/billing/v1/calculate-tax',\n        destPath: '/v1/calculate-tax',\n      },\n      {\n        srcPath: '/billing/v1/list-tax-calculators',\n        destPath: '/v1/list-tax-calculators',\n      },\n    ],\n    '*.dev.wix-code.com': [\n      {\n        srcPath: '/gateways/billing/v1/calculate-tax',\n        destPath: '/v1/calculate-tax',\n      },\n      {\n        srcPath: '/gateways/billing/v1/list-tax-calculators',\n        destPath: '/v1/list-tax-calculators',\n      },\n    ],\n    _: [\n      {\n        srcPath: '/gateways/billing/v1/calculate-tax',\n        destPath: '/v1/calculate-tax',\n      },\n      {\n        srcPath: '/gateways/billing/v1/list-tax-calculators',\n        destPath: '/v1/list-tax-calculators',\n      },\n    ],\n  };\n\n  return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_ecom_tax-calculation';\n\n/**\n * Calculates tax for the provided line items.\n *\n * Tax is calculated for each line item based on the tax region\n * that corresponds to the address provided in `lineItems.addressIndex` and the tax group in `taxGroupId`. If no tax region is found for\n * the line item's address then no tax will be calculated for this line item.\n *\n * The tax is calculated by a tax calculator app installed on the site.\n * Call List Tax Calculators to see which tax calculators are available.\n * To provide your own tax calculations, use the Tax Calculation service plugin.\n *\n * The breakdown of calculated tax returned, includes:\n * + `taxSummary`: The overall total tax calculated.\n * + `taxSummary.aggregatedTaxBreakdown`: The total tax calculated for each jurisdiction.\n * + `lineItemTaxDetails.taxSummary`: The total tax calculated for each line item.\n * + `lineItemTaxDetails.taxBreakdown`: The tax calculated for each line item in each jurisdiction.\n */\nexport function calculateTax(payload: object): RequestOptionsFactory<any> {\n  function __calculateTax({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.gateways.billing.v1.tax_calculation_gateway',\n      method: 'POST' as any,\n      methodFqn: 'wix.billing.v1.TaxCalculation.CalculateTax',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveWixBillingV1TaxCalculationUrl({\n        protoPath: '/v1/calculate-tax',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __calculateTax;\n}\n\n/**\n * Retrieves a list of installed tax calculators.\n *\n * Wix uses these calculators to calculate tax.\n */\nexport function listTaxCalculators(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __listTaxCalculators({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.gateways.billing.v1.tax_calculation_gateway',\n      method: 'GET' as any,\n      methodFqn: 'wix.billing.v1.TaxCalculation.ListTaxCalculators',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveWixBillingV1TaxCalculationUrl({\n        protoPath: '/v1/list-tax-calculators',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload),\n    };\n\n    return metadata;\n  }\n\n  return __listTaxCalculators;\n}\n","import { HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n  CalculateTaxApplicationErrors,\n  CalculateTaxOptions,\n  CalculateTaxResponse,\n  ListTaxCalculatorsResponse,\n  calculateTax as universalCalculateTax,\n  listTaxCalculators as universalListTaxCalculators,\n} from './gateways-billing-v1-tax-calculation-gateway-tax-calculation.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/ecom' };\n\nexport function calculateTax(httpClient: HttpClient): CalculateTaxSignature {\n  return (\n    options?: NonNullablePaths<\n      CalculateTaxOptions,\n      | `addresses`\n      | `lineItems`\n      | `lineItems.${number}._id`\n      | `lineItems.${number}.addressIndex`\n      | `lineItems.${number}.price`,\n      2\n    >\n  ) =>\n    universalCalculateTax(\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface CalculateTaxSignature {\n  /**\n   * Calculates tax for the provided line items.\n   *\n   * Tax is calculated for each line item based on the tax region\n   * that corresponds to the address provided in `lineItems.addressIndex` and the tax group in `taxGroupId`. If no tax region is found for\n   * the line item's address then no tax will be calculated for this line item.\n   *\n   * The tax is calculated by a tax calculator app installed on the site.\n   * Call List Tax Calculators to see which tax calculators are available.\n   * To provide your own tax calculations, use the Tax Calculation service plugin.\n   *\n   * The breakdown of calculated tax returned, includes:\n   * + `taxSummary`: The overall total tax calculated.\n   * + `taxSummary.aggregatedTaxBreakdown`: The total tax calculated for each jurisdiction.\n   * + `lineItemTaxDetails.taxSummary`: The total tax calculated for each line item.\n   * + `lineItemTaxDetails.taxBreakdown`: The tax calculated for each line item in each jurisdiction.\n   * @param - Calculate tax options.\n   */\n  (\n    options?: NonNullablePaths<\n      CalculateTaxOptions,\n      | `addresses`\n      | `lineItems`\n      | `lineItems.${number}._id`\n      | `lineItems.${number}.addressIndex`\n      | `lineItems.${number}.price`,\n      2\n    >\n  ): Promise<\n    NonNullablePaths<\n      CalculateTaxResponse,\n      | `currency`\n      | `addresses`\n      | `taxSummary.totalAmount`\n      | `taxSummary.totalTax`\n      | `taxSummary.totalTaxableAmount`\n      | `taxSummary.totalTaxIncludedInPrice`\n      | `taxSummary.aggregatedTaxBreakdown`\n      | `taxSummary.aggregatedTaxBreakdown.${number}.taxName`\n      | `taxSummary.aggregatedTaxBreakdown.${number}.taxType`\n      | `taxSummary.aggregatedTaxBreakdown.${number}.jurisdiction`\n      | `taxSummary.aggregatedTaxBreakdown.${number}.jurisdictionType`\n      | `taxSummary.aggregatedTaxBreakdown.${number}.rate`\n      | `taxSummary.aggregatedTaxBreakdown.${number}.aggregatedTaxAmount`\n      | `lineItemTaxDetails`\n      | `lineItemTaxDetails.${number}._id`\n      | `lineItemTaxDetails.${number}.quantity`\n      | `lineItemTaxDetails.${number}.taxSummary.taxAmount`\n      | `lineItemTaxDetails.${number}.taxSummary.taxableAmount`\n      | `lineItemTaxDetails.${number}.addressIndex.singleAddress`\n      | `lineItemTaxDetails.${number}.addressIndex.multipleAddresses.origin`\n      | `lineItemTaxDetails.${number}.addressIndex.multipleAddresses.destination`\n      | `lineItemTaxDetails.${number}.taxIncludedInPrice`\n      | `errors`\n      | `errors.${number}.code`\n      | `errors.${number}.description`,\n      4\n    > & {\n      __applicationErrorsType?: CalculateTaxApplicationErrors;\n    }\n  >;\n}\n\nexport function listTaxCalculators(\n  httpClient: HttpClient\n): ListTaxCalculatorsSignature {\n  return () =>\n    universalListTaxCalculators(\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface ListTaxCalculatorsSignature {\n  /**\n   * Retrieves a list of installed tax calculators.\n   *\n   * Wix uses these calculators to calculate tax.\n   */\n  (): Promise<\n    NonNullablePaths<\n      ListTaxCalculatorsResponse,\n      | `taxCalculatorDetails`\n      | `taxCalculatorDetails.${number}.appId`\n      | `taxCalculatorDetails.${number}.displayName`,\n      2\n    >\n  >;\n}\n\nexport {\n  Address,\n  AddressIndex,\n  AddressIndexAddressIndexOptionsOneOf,\n  AggregateTaxBreakdownsRequest,\n  AggregateTaxBreakdownsResponse,\n  AggregatedTaxBreakdown,\n  ApplicationError,\n  CalculateTaxOptions,\n  CalculateTaxRequest,\n  CalculateTaxResponse,\n  ExemptBy,\n  ExemptCalculationDetails,\n  ExemptCalculationDetailsExemptByOptionsOneOf,\n  JurisdictionType,\n  LineItem,\n  LineItemTaxDetails,\n  LineItemTaxSummary,\n  ListTaxCalculatorsRequest,\n  ListTaxCalculatorsResponse,\n  MultipleAddresses,\n  TaxBreakdown,\n  TaxCalculationGateway,\n  TaxCalculatorDetails,\n  TaxSummary,\n} from './gateways-billing-v1-tax-calculation-gateway-tax-calculation.universal.js';\n","import {\n  calculateTax as publicCalculateTax,\n  listTaxCalculators as publicListTaxCalculators,\n} from './gateways-billing-v1-tax-calculation-gateway-tax-calculation.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { BuildRESTFunction, MaybeContext } from '@wix/sdk-types';\n\nexport const calculateTax: MaybeContext<\n  BuildRESTFunction<typeof publicCalculateTax> & typeof publicCalculateTax\n> = /*#__PURE__*/ createRESTModule(publicCalculateTax);\nexport const listTaxCalculators: MaybeContext<\n  BuildRESTFunction<typeof publicListTaxCalculators> &\n    typeof publicListTaxCalculators\n> = /*#__PURE__*/ createRESTModule(publicListTaxCalculators);\n\nexport {\n  ExemptBy,\n  JurisdictionType,\n} from './gateways-billing-v1-tax-calculation-gateway-tax-calculation.universal.js';\nexport {\n  TaxCalculationGateway,\n  CalculateTaxRequest,\n  Address,\n  LineItem,\n  AddressIndex,\n  AddressIndexAddressIndexOptionsOneOf,\n  MultipleAddresses,\n  ExemptCalculationDetails,\n  ExemptCalculationDetailsExemptByOptionsOneOf,\n  CalculateTaxResponse,\n  TaxSummary,\n  AggregatedTaxBreakdown,\n  LineItemTaxDetails,\n  TaxBreakdown,\n  LineItemTaxSummary,\n  ApplicationError,\n  ListTaxCalculatorsRequest,\n  ListTaxCalculatorsResponse,\n  TaxCalculatorDetails,\n  AggregateTaxBreakdownsRequest,\n  AggregateTaxBreakdownsResponse,\n  CalculateTaxOptions,\n} from './gateways-billing-v1-tax-calculation-gateway-tax-calculation.universal.js';\nexport {\n  ExemptByWithLiterals,\n  JurisdictionTypeWithLiterals,\n  CalculateTaxApplicationErrors,\n} from './gateways-billing-v1-tax-calculation-gateway-tax-calculation.universal.js';\n"]}