{"version":3,"sources":["jsdelivr-header.js","/npm/@wix/auto_sdk_ecom_catalog@1.0.58/index.ts","/npm/@wix/auto_sdk_ecom_catalog@1.0.58/src/service-plugins-types.ts","/npm/@wix/auto_sdk_ecom_catalog@1.0.58/src/interfaces-ecommerce-v1-catalog-provider.public.ts","/npm/@wix/auto_sdk_ecom_catalog@1.0.58/src/interfaces-ecommerce-v1-catalog-provider.context.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,8iBCNA,cAAA,GAAA,SAAA,cAAA,CAAA,WAAA,IAAA,WAAA,oBAAA,IAAA,oBAAA,eAAA,IAAA,eAAA,SAAA,IAAA,SAAA,aAAA,IAAA,aAAA,eAAA,IAAA,eAAA,kBAAA,IAAA,kBAAA,sBAAA,IAAA,sBAAA,mBAAA,IAAA,mBAAA,WAAA,IAAA,WAAA,gBAAA,IAAA,iBAAA,sBAAA,IAAA,kBAAA,OAAA,QAAA,aAAA,eC4DO,IAAK,WAAL,CAAK,IAEV,EAAA,wBAA0B,0BAE1B,EAAA,GAAK,KAEL,EAAA,GAAK,KANK,GAAL,CAAK,YAAA,IA4PA,eAAL,CAAK,IACV,EAAA,aAAe,eACf,EAAA,SAAW,WACX,EAAA,QAAU,UACV,EAAA,UAAY,YACZ,EAAA,QAAU,UALA,GAAL,CAAK,gBAAA,IA6EA,oBAAL,CAAK,IAEV,EAAA,aAAe,eAEf,EAAA,WAAa,aAEb,EAAA,MAAQ,QANE,GAAL,CAAK,qBAAA,IAyCA,eAAL,CAAK,IACV,EAAA,wBAA0B,0BAE1B,EAAA,GAAK,KAEL,EAAA,GAAK,KAEL,EAAA,EAAI,IAEJ,EAAA,GAAK,KAEL,EAAA,GAAK,KAEL,EAAA,GAAK,KAbK,GAAL,CAAK,gBAAA,IAoEA,sBAAL,CAAK,IACV,EAAA,UAAY,YACZ,EAAA,IAAM,MACN,EAAA,KAAO,OACP,EAAA,MAAQ,QACR,EAAA,KAAO,OALG,GAAL,CAAK,uBAAA,IA2EA,SAAL,CAAK,IACV,EAAA,YAAc,cACd,EAAA,eAAiB,iBACjB,EAAA,aAAe,eACf,EAAA,gBAAkB,kBAClB,EAAA,aAAe,eACf,EAAA,eAAiB,iBACjB,EAAA,WAAa,aAPH,GAAL,CAAK,UAAA,IAWA,kBAAL,CAAK,IAEV,EAAA,oBAAsB,sBAEtB,EAAA,qBAAuB,uBAEvB,EAAA,WAAa,aAEb,EAAA,eAAiB,iBAEjB,EAAA,mBAAqB,qBAKrB,EAAA,yCAA2C,2CAfjC,GAAL,CAAK,mBAAA,IA4DA,mBAAL,CAAK,IACV,EAAA,SAAW,WACX,EAAA,QAAU,UACV,EAAA,SAAW,WAHD,GAAL,CAAK,oBAAA,IA0IA,WAAL,CAAK,IAEV,EAAA,QAAU,UAEV,EAAA,SAAW,WAJD,GAAL,CAAK,YAAA,IA8JA,aAAL,CAAK,IACV,EAAA,QAAU,UACV,EAAA,kBAAoB,oBACpB,EAAA,OAAS,SACT,EAAA,SAAW,WACX,EAAA,IAAM,MALI,GAAL,CAAK,cAAA,IC56BZ,iBAAwC,QAAA,kBAMxC,aAA6C,QAAA,0CAC7C,mBAAqD,QAAA,gDACrD,aAA6C,QAAA,0CAC7C,iBAAqD,QAAA,8CACrD,uBAA+B,QAAA,oDAC/B,8BAGO,QAAA,2CAOM,iBAAA,EAAkB,iBAAA,yBA4B5B,eAAgB,CACjB,CACE,KAAM,kBACN,uBAAwB,qBACxB,gBAAiB,CACf,OAAS,IACP,MAAM,GAAA,EAAiB,uBAAA,gBAAe,EAAS,CAC7C,CACE,YAAa,mBAAA,qCACb,MAAO,CAAC,CAAE,KAAM,2BAElB,CACE,YAAa,aAAA,6BACb,MAAO,CAAC,CAAE,KAAM,6BAElB,CACE,YAAa,aAAA,6BACb,MAAO,CAAC,CAAE,KAAM,iDAElB,CACE,YAAa,iBAAA,qCACb,MAAO,CACL,CACE,KAAM,2EAER,CAAE,KAAM,qDACR,CAAE,KAAM,mDAKd,SAAO,8BAAA,uCAAsC,EAAc,EAE7D,SAAW,IACT,MAAM,EAAkB,EAExB,SAAO,8BAAA,yCAAwC,EAAe,MCpFtE,8BAA0C,QAAA,2CAM7B,oBAGoB,8BAAA,2BAC/B","file":"/npm/@wix/auto_sdk_ecom_catalog@1.0.58/build/cjs/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@wix/auto_sdk_ecom_catalog@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/service-plugins-types.js';\nexport * from './src/interfaces-ecommerce-v1-catalog-provider.context.js';\n","export interface GetCatalogItemsRequest {\n  /**\n   * Catalog reference details for the items to retrieve, including quantity of each item.\n   * @minSize 1\n   * @maxSize 300\n   */\n  catalogReferences?: CatalogReferenceAndQuantity[];\n  /**\n   * Weight measurement unit.\n   *\n   * By default, Wix sends the weight unit specified in the site's settings.\n   */\n  weightUnit?: WeightUnit;\n  /**\n   * Currency to return item prices in, in [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. For example, `USD` or `EUR`.\n   *\n   * By default, Wix sends the currency specified in the site's settings.\n   * @format CURRENCY\n   */\n  currency?: string;\n}\n\nexport interface CatalogReferenceAndQuantity {\n  /** Catalog and item reference info. Holds IDs for the item and the catalog it belongs to, as well as further optional details. This is identical in the request and response. */\n  catalogReference?: CatalogReference;\n  /** Item quantity. */\n  quantity?: number;\n}\n\n/** Used for grouping line items. Sent when an item is added to a cart, checkout, or order. */\nexport interface CatalogReference {\n  /**\n   * ID of the item within the catalog it belongs to.\n   * @minLength 1\n   * @maxLength 36\n   */\n  catalogItemId?: string;\n  /**\n   * ID of the app providing the catalog.\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   * @minLength 1\n   */\n  appId?: string;\n  /**\n   * Additional item details in `key:value` pairs.\n   *\n   * Use this optional field for more specificity with item selection. The values of the `options` field differ depending on which catalog is providing the items.\n   *\n   * For Wix Stores products, learn more about integrating with [Catalog V3](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/e-commerce-integration)\n   * or [Catalog V1](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v1/catalog/e-commerce-integration), depending on [the version the site uses](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-versioning/introduction).\n   */\n  options?: Record<string, any> | null;\n}\n\nexport enum WeightUnit {\n  /** Weight unit can't be classified due to an error. */\n  UNSPECIFIED_WEIGHT_UNIT = 'UNSPECIFIED_WEIGHT_UNIT',\n  /** Kilograms. */\n  KG = 'KG',\n  /** Pounds. */\n  LB = 'LB',\n}\n\n/** Buyer Info */\nexport interface BuyerInfo extends BuyerInfoIdOneOf {\n  /**\n   * Visitor ID - if the buyer is **not** a site member.\n   * @format GUID\n   * @readonly\n   */\n  visitorId?: string;\n  /**\n   * Member ID - if the buyer is a site member.\n   * @format GUID\n   * @readonly\n   */\n  memberId?: string;\n  /**\n   * User ID - if the buyer (or cart owner) is a Wix user.\n   * @format GUID\n   * @readonly\n   */\n  userId?: string;\n  /**\n   * Contact ID. For more information, see [Contacts API](https://dev.wix.com/api/rest/contacts/contacts/introduction).\n   * @format GUID\n   */\n  contactId?: string | null;\n  /**\n   * Buyer email address.\n   * @format EMAIL\n   */\n  email?: string | null;\n}\n\n/** @oneof */\nexport interface BuyerInfoIdOneOf {\n  /**\n   * Visitor ID - if the buyer is **not** a site member.\n   * @format GUID\n   * @readonly\n   */\n  visitorId?: string;\n  /**\n   * Member ID - if the buyer is a site member.\n   * @format GUID\n   * @readonly\n   */\n  memberId?: string;\n  /**\n   * User ID - if the buyer (or cart owner) is a Wix user.\n   * @format GUID\n   * @readonly\n   */\n  userId?: string;\n}\n\nexport interface GetCatalogItemsResponse {\n  /**\n   * Details for each item, including catalog reference details and item data. Any items that don't exist in the catalog are excluded.\n   * If none of the requested items exist in the catalog, this array must be empty.\n   */\n  catalogItems?: Item[];\n}\n\nexport interface Item {\n  /** Catalog and item reference info. Holds IDs for the item and the catalog it belongs to, as well as further optional details. This is identical in the request and response. */\n  catalogReference?: CatalogReference;\n  /** Item data. Contains full details about the item. */\n  data?: ItemData;\n}\n\nexport interface ItemData {\n  /** __Required.__ Item name. */\n  productName?: ProductName;\n  /**\n   * URL for the item's page on the site.\n   *\n   * This is used to link back to the relevant item page from the cart page. If not provided, the site URL is used.\n   */\n  url?: string;\n  /** __Required.__ Item type. Either one of the preset types or a custom type. */\n  itemType?: ItemType;\n  /**\n   * __Required.__ Item price with discounts applied. If a catalog-defined discount applies, the discount is reflected in this price.\n   * @decimalValue options { gte:0, lte:1000000000000000 }\n   */\n  price?: string;\n  /**\n   * Item price **before** applying any catalog-defined discount.\n   *\n   * Default: Value of `price` field, if no catalog-defined discount applies.\n   * @format DECIMAL_VALUE\n   */\n  fullPrice?: string | null;\n  /**\n   * The tax group ID associated with this item. Learn more about the [Tax Groups Service Plugin](https://dev.wix.com/docs/rest/business-solutions/e-commerce/service-plugins/tax-groups-integration-service-plugin/introduction).\n   * @format GUID\n   */\n  taxGroupId?: string | null;\n  /**\n   * Line item description lines. Used for displaying the item in a cart, checkout or order. For example, if you want `Size: Large` to appear under the item name, create a description line with `\"name\": {\"original\": \"Size\"}` and  `\"plainText\": {\"original\": \"Large\"}`.\n   *\n   * Default: No description line.\n   * @maxSize 20\n   */\n  descriptionLines?: DescriptionLine[];\n  /**\n   * Line item image details. Supports images from the [Wix Media Manager](https://support.wix.com/en/article/wix-media-accessing-the-media-manager) only.\n   *\n   * To use an image from another source, first upload it to the Media Manager.\n   * You can retrieve the ID, width and height of an image from the Wix Media Manager.\n   */\n  media?: string;\n  /**\n   * Quantity of the item available for purchase. Only return if the catalog manages inventory.\n   * If not returned, a buyer can increase the quantity of this item to add to the cart or checkout without limit.\n   * @max 100000000\n   */\n  quantityAvailable?: number | null;\n  /** Physical properties of the item. Only return for physical items. When applicable, contains information such as SKU and item weight. */\n  physicalProperties?: PhysicalProperties;\n  /** Subscription option info. */\n  subscriptionOptionInfo?: SubscriptionOptionInfo;\n  /**\n   * Type of selected payment option for current item.\n   *\n   * Default: `FULL_PAYMENT_ONLINE`\n   */\n  paymentOption?: PaymentOptionType;\n  /** Service properties. When applicable, this contains information such as time and number of participants. */\n  serviceProperties?: ServiceProperties;\n  /**\n   * Additional ID for the item in the catalog.\n   * This field provides an additional identifier for the item if your flow requires another ID as well as `catalogReference.catalogItemId`.\n   * Can be used for membership validation.\n   *\n   * Default: Same as `catalogReference.catalogItemId`.\n   * @minLength 1\n   * @maxLength 36\n   */\n  rootCatalogItemId?: string | null;\n  /**\n   * Additional description for the price. Return when additional information about the price is needed.\n   *\n   * For example, when `price` is `\"0\"` but additional details about the actual price are needed, such as `\"Starts at $67\"`.\n   */\n  priceDescription?: PriceDescription;\n  /**\n   * Partial payment to be paid upfront during the checkout. Return when `paymentOption` is `DEPOSIT_ONLINE`.\n   *\n   * Default: If `paymentOption` is `DEPOSIT_ONLINE` but `depositAmount` is not provided, the item is treated as if `paymentOption` is `FULL_PAYMENT_ONLINE`.\n   * @format DECIMAL_VALUE\n   */\n  depositAmount?: string | null;\n  /**\n   * Delivery profile ID for the product.\n   * @format GUID\n   */\n  deliveryProfileId?: string | null;\n  /**\n   * Item payment policy that requires customer consent to complete purchase. The payment policy will be displayed on the checkout page.\n   * @minLength 1\n   * @maxLength 2500\n   */\n  consentRequiredPaymentPolicy?: string | null;\n  /**\n   * Whether the price is not yet defined, and will be updated after the order is created.\n   *\n   * Default: `false`\n   */\n  priceUndetermined?: boolean;\n  /**\n   * Whether the line item quantity is fixed and cannot be changed.\n   *\n   * Default: `false`\n   */\n  fixedQuantity?: boolean;\n  /**\n   * Whether to save the payment method on the order.\n   *\n   * Default: `false`\n   */\n  savePaymentMethod?: boolean;\n  /** Address to use for tax calculation purposes. */\n  taxableAddress?: TaxableAddress;\n  /**\n   * Policies to be displayed to the customer on the checkout page.\n   * @maxSize 5\n   */\n  policies?: Policy[];\n  /**\n   * Additional Fees to be added to this item calculation.\n   * @maxSize 5\n   */\n  additionalFees?: AdditionalFee[];\n  /**\n   * Whether the item can only be purchased by site members.\n   *\n   * Default: `false`\n   */\n  membersOnly?: boolean;\n  /**\n   * Modifier groups that were added to the item.\n   * @maxSize 25\n   */\n  modifierGroups?: ModifierGroup[];\n}\n\nexport interface ProductName {\n  /**\n   * __Required.__ Item name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions#request-envelope).\n   *\n   * Min: 1 character.\n   * Max: 200 characters.\n   * @minLength 1\n   * @maxLength 200\n   */\n  original?: string;\n  /**\n   * Item name translated into the buyer's language.\n   *\n   * Min: 1 character.\n   * Max: 400 characters.\n   * Default: Same as `original`.\n   * @minLength 1\n   * @maxLength 400\n   */\n  translated?: string | null;\n}\n\nexport interface ItemType extends ItemTypeItemTypeDataOneOf {\n  /** Preset item type. */\n  preset?: ItemTypePreset;\n  /** Custom item type. When none of the preset types are suitable, specifies the custom type. */\n  custom?: string;\n}\n\n/** @oneof */\nexport interface ItemTypeItemTypeDataOneOf {\n  /** Preset item type. */\n  preset?: ItemTypePreset;\n  /** Custom item type. When none of the preset types are suitable, specifies the custom type. */\n  custom?: string;\n}\n\nexport enum ItemTypePreset {\n  UNRECOGNISED = 'UNRECOGNISED',\n  PHYSICAL = 'PHYSICAL',\n  DIGITAL = 'DIGITAL',\n  GIFT_CARD = 'GIFT_CARD',\n  SERVICE = 'SERVICE',\n}\n\nexport interface DescriptionLine\n  extends DescriptionLineValueOneOf,\n    DescriptionLineDescriptionLineValueOneOf {\n  /** Description line plain text value. */\n  plainText?: PlainTextValue;\n  /** Description line color value. */\n  colorInfo?: Color;\n  /** Description line name. */\n  name?: DescriptionLineName;\n}\n\n/** @oneof */\nexport interface DescriptionLineValueOneOf {\n  /** Description line plain text value. */\n  plainText?: PlainTextValue;\n  /** Description line color value. */\n  colorInfo?: Color;\n}\n\n/** @oneof */\nexport interface DescriptionLineDescriptionLineValueOneOf {}\n\nexport interface DescriptionLineName {\n  /**\n   * Description line name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions#request-envelope).\n   * @maxLength 100\n   */\n  original?: string;\n  /**\n   * Description line name translated into the buyer's language.\n   *\n   * Default: Same as `original`.\n   * @maxLength 200\n   */\n  translated?: string | null;\n}\n\nexport interface PlainTextValue {\n  /**\n   * Description line plain text value in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions#request-envelope).\n   * @maxLength 600\n   */\n  original?: string;\n  /**\n   * Description line plain text value translated into the buyer's language.\n   *\n   * Default: Same as `original`.\n   * @maxLength 600\n   */\n  translated?: string | null;\n}\n\nexport interface Color {\n  /**\n   * Description line color name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions#request-envelope).\n   * @maxLength 500\n   */\n  original?: string;\n  /**\n   * Description line color name translated into the buyer's language.\n   *\n   * Default: Same as `original`.\n   * @maxLength 500\n   */\n  translated?: string | null;\n  /** HEX or RGB color code for display. */\n  code?: string | null;\n}\n\nexport enum DescriptionLineType {\n  /** Unrecognized type. */\n  UNRECOGNISED = 'UNRECOGNISED',\n  /** Plain text type. */\n  PLAIN_TEXT = 'PLAIN_TEXT',\n  /** Color type. */\n  COLOR = 'COLOR',\n}\n\nexport interface PhysicalProperties {\n  /** Line item weight. Measurement unit matches the weight unit specified in `weightUnit` in the request. */\n  weight?: number | null;\n  /**\n   * Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).\n   * @maxLength 40\n   */\n  sku?: string | null;\n  /** Whether this line item is shippable. */\n  shippable?: boolean;\n}\n\nexport interface Dimensions {\n  /**\n   * Length. Measurement unit is handled at the system level (metric/imperial).\n   * @decimalValue options { gte:0, lte:999999999, maxScale:6 }\n   */\n  length?: string | null;\n  /**\n   * Width. Measurement unit is handled at the system level (metric/imperial).\n   * @decimalValue options { gte:0, lte:999999999, maxScale:6 }\n   */\n  width?: string | null;\n  /**\n   * Height. Measurement unit is handled at the system level (metric/imperial).\n   * @decimalValue options { gte:0, lte:999999999, maxScale:6 }\n   */\n  height?: string | null;\n  /** Unit of measurement for dimensions (length, width, height). */\n  unit?: DimensionsUnit;\n}\n\nexport enum DimensionsUnit {\n  UNKNOWN_DIMENSIONS_UNIT = 'UNKNOWN_DIMENSIONS_UNIT',\n  /** Millimeters. */\n  MM = 'MM',\n  /** Centimeters. */\n  CM = 'CM',\n  /** Meters. */\n  M = 'M',\n  /** Inches. */\n  IN = 'IN',\n  /** Feet. */\n  FT = 'FT',\n  /** Yards. */\n  YD = 'YD',\n}\n\nexport interface Scope {\n  /** Scope namespace (Wix Stores, Wix Bookings, Wix Events, Wix Pricing Plans) */\n  namespace?: string;\n  /** Coupon scope's applied group (e.g., event or ticket in Wix Events) */\n  group?: Group;\n}\n\nexport interface Group {\n  /** Coupon scope's group (e.g., product or collection in Wix Stores). See [valid scope values](https://dev.wix.com/api/rest/coupons/coupons/valid-scope-values). */\n  name?: string;\n  /** Item ID (when the coupon scope is limited to just one item). */\n  entityId?: string | null;\n}\n\nexport interface SubscriptionOptionInfo {\n  /** Subscription option settings. */\n  subscriptionSettings?: SubscriptionSettings;\n  /** Subscription option title. */\n  title?: Title;\n  /** Subscription option description. */\n  description?: Description;\n}\n\nexport interface SubscriptionSettings {\n  /** Frequency of recurring payment. */\n  frequency?: SubscriptionFrequency;\n  /**\n   * Interval of recurring payment.\n   *\n   * Default: `1`.\n   * If SubscriptionFrequency is Day the minimum interval is 7\n   * @min 1\n   * @max 3650\n   */\n  interval?: number | null;\n  /** Whether subscription is renewed automatically at the end of each period. */\n  autoRenewal?: boolean;\n  /**\n   * Number of billing cycles before subscription ends. Ignored if `autoRenewal` is `true`.\n   * @min 1\n   */\n  billingCycles?: number | null;\n  /** Whether to allow the customer to cancel the subscription.. */\n  enableCustomerCancellation?: boolean;\n  /**\n   * Period until first cycle starts. If applied payNow will be 0\n   * If None => no free trial\n   */\n  freeTrialPeriod?: FreeTrialPeriod;\n}\n\n/** Frequency unit of recurring payment */\nexport enum SubscriptionFrequency {\n  UNDEFINED = 'UNDEFINED',\n  DAY = 'DAY',\n  WEEK = 'WEEK',\n  MONTH = 'MONTH',\n  YEAR = 'YEAR',\n}\n\nexport interface FreeTrialPeriod {\n  /** Frequency of period. Values: DAY, WEEK, MONTH, YEAR */\n  frequency?: SubscriptionFrequency;\n  /**\n   * Number of frequency units in the free trial period. For example, frequency `MONTH` with interval `3` means a 3-month free trial.\n   * @min 1\n   * @max 999\n   */\n  interval?: number;\n}\n\nexport interface BillingSettings {\n  /**\n   * Day of month (1-28) to anchor recurring billing to. When set, billing recurs on this day each cycle. Does not apply to weekly subscriptions.\n   * @min 1\n   * @max 28\n   */\n  anchorDay?: number | null;\n}\n\nexport interface Title {\n  /**\n   * Subscription option name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions#request-envelope).\n   * @minLength 1\n   * @maxLength 150\n   */\n  original?: string;\n  /**\n   * Subscription option name translated into the buyer's language.\n   *\n   * Default: Same as `original`.\n   * @minLength 1\n   * @maxLength 150\n   */\n  translated?: string | null;\n}\n\nexport interface Description {\n  /**\n   * Subscription option description.\n   * @maxLength 500\n   */\n  original?: string;\n  /**\n   * Translated subscription option description.\n   * @maxLength 500\n   */\n  translated?: string | null;\n}\n\nexport interface SecuredMedia {\n  /**\n   * Media ID in Wix Media Manager.\n   * @minLength 1\n   * @maxLength 100\n   */\n  _id?: string;\n  /**\n   * Original filename.\n   * @minLength 1\n   * @maxLength 1000\n   */\n  fileName?: string;\n  /** File type. */\n  fileType?: FileType;\n}\n\nexport enum FileType {\n  UNSPECIFIED = 'UNSPECIFIED',\n  SECURE_PICTURE = 'SECURE_PICTURE',\n  SECURE_VIDEO = 'SECURE_VIDEO',\n  SECURE_DOCUMENT = 'SECURE_DOCUMENT',\n  SECURE_MUSIC = 'SECURE_MUSIC',\n  SECURE_ARCHIVE = 'SECURE_ARCHIVE',\n  SECURE_RAW = 'SECURE_RAW',\n}\n\n/** Type of selected payment option for catalog item */\nexport enum PaymentOptionType {\n  /** The entire payment for this item happens as part of the checkout. */\n  FULL_PAYMENT_ONLINE = 'FULL_PAYMENT_ONLINE',\n  /** The entire payment for this item happens after checkout. For example, when using cash, check, or other offline payment methods. */\n  FULL_PAYMENT_OFFLINE = 'FULL_PAYMENT_OFFLINE',\n  /** Payment for this item is done by charging a membership. Any remaining amount not covered by the membership, such as item modifiers, is paid online. */\n  MEMBERSHIP = 'MEMBERSHIP',\n  /** Partial payment to be paid upfront during checkout. The initial amount to be paid for each line item is specified in `depositAmount`. */\n  DEPOSIT_ONLINE = 'DEPOSIT_ONLINE',\n  /** Payment for this item can only be done by charging a membership and must be manually redeemed in the dashboard by the site admin. When selected, `price` is `0`. */\n  MEMBERSHIP_OFFLINE = 'MEMBERSHIP_OFFLINE',\n  /**\n   * Item price is charged to online membership. Any remaining amount not covered by the membership, such as item modifiers, is paid offline.\n   * @documentationMaturity preview\n   */\n  MEMBERSHIP_ONLINE_WITH_OFFLINE_REMAINDER = 'MEMBERSHIP_ONLINE_WITH_OFFLINE_REMAINDER',\n}\n\nexport interface ServiceProperties {\n  /**\n   * Date and time the service is to be provided, in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format.\n   * For example, the start time of a class.\n   */\n  scheduledDate?: Date | null;\n  /**\n   * The number of people participating in the service. For example, the number of people attending a class or the number of people per hotel room.\n   * @min 1\n   * @max 10000\n   */\n  numberOfParticipants?: number | null;\n}\n\nexport interface PriceDescription {\n  /**\n   * __Required.__ Price description in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions#request-envelope).\n   * @minLength 1\n   * @maxLength 100\n   */\n  original?: string;\n  /**\n   * Price description translated into the buyer's language.\n   *\n   * Default: Same as `original`.\n   * @minLength 1\n   * @maxLength 100\n   */\n  translated?: string | null;\n}\n\nexport interface TaxableAddress extends TaxableAddressTaxableAddressDataOneOf {\n  /** taxable address type. if this field is selected, the address is automatically resolved, and the tax is calculated accordingly. */\n  addressType?: TaxableAddressType;\n}\n\n/** @oneof */\nexport interface TaxableAddressTaxableAddressDataOneOf {\n  /** taxable address type. if this field is selected, the address is automatically resolved, and the tax is calculated accordingly. */\n  addressType?: TaxableAddressType;\n}\n\nexport enum TaxableAddressType {\n  BUSINESS = 'BUSINESS',\n  BILLING = 'BILLING',\n  SHIPPING = 'SHIPPING',\n}\n\nexport interface Policy {\n  /**\n   * Policy title - should be translated\n   * @minLength 1\n   * @maxLength 29\n   */\n  title?: string | null;\n  /**\n   * Policy content - should be translated\n   * @minLength 1\n   * @maxLength 3000\n   */\n  content?: string;\n}\n\nexport interface AdditionalFee {\n  /**\n   * Additional fee's unique code or ID.\n   * @minLength 1\n   * @maxLength 100\n   */\n  code?: string | null;\n  /**\n   * Additional fee's name.\n   *\n   * Max: 50 characters\n   * @minLength 1\n   * @maxLength 50\n   */\n  name?: string;\n  /**\n   * Total additional fees. This `price` does not include any taxes that may apply to these additional fees.\n   * @decimalValue options { gte:0, lte:1000000000000000, maxScale:2 }\n   */\n  price?: string;\n  /**\n   * Tax details.\n   *\n   * > **Note:** Tax is not calculated in the returned `price` even when `taxDetails.taxable` is `true`.\n   */\n  taxDetails?: TaxDetails;\n}\n\n/** Tax details. */\nexport interface TaxDetails {\n  /** Whether additional fee is taxable. */\n  taxable?: boolean;\n  /**\n   * Reserved for internal use.\n   * @format GUID\n   */\n  taxGroupId?: string | null;\n}\n\nexport interface ModifierGroup {\n  /**\n   * Modifier group ID.\n   * @minLength 1\n   * @maxLength 36\n   */\n  _id?: string;\n  /** Modifier group name. */\n  name?: TranslatableString;\n  /**\n   * List of modifiers in this group.\n   * @minSize 1\n   * @maxSize 25\n   */\n  modifiers?: ItemModifier[];\n}\n\nexport interface TranslatableString {\n  /**\n   * __Required.__ String in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions#request-envelope).\n   *\n   * Min: 1 character.\n   * Max: 200 characters.\n   * @minLength 1\n   * @maxLength 200\n   */\n  original?: string;\n  /**\n   * String translated into the buyer's language.\n   *\n   * Min: 1 character.\n   * Max: 400 characters.\n   * Default: Same as `original`.\n   * @minLength 1\n   * @maxLength 400\n   */\n  translated?: string | null;\n}\n\nexport interface ItemModifier {\n  /**\n   * Modifier ID.\n   * @minLength 1\n   * @maxLength 36\n   */\n  _id?: string;\n  /**\n   * The quantity of this modifier.\n   * @min 1\n   * @max 100000\n   */\n  quantity?: number | null;\n  /** Primary display label for the modifier. */\n  label?: TranslatableString;\n  /** Additional details. */\n  details?: TranslatableString;\n  /**\n   * The price of the modifier.\n   * @decimalValue options { gte:0, lte:1000000000000000, maxScale:3 }\n   */\n  price?: string | null;\n}\n\nexport interface PlatformFee {\n  /** __Required.__ Platform fee name. */\n  name?: TranslatableString;\n  /** Platform fee charge type. */\n  chargeType?: ChargeType;\n  /**\n   * Percentage rate charged as platform fee.\n   *\n   * The fee rate percentage expressed as a decimal fraction between 0 and 1. For example, `0.05` for 5%.\n   * @format DECIMAL_VALUE\n   * @decimalValue options { gt:0, lte:1, maxScale:4 }\n   */\n  percentageRate?: string;\n}\n\nexport enum ChargeType {\n  /** The platform fee is passed on to the customer. */\n  PASS_ON = 'PASS_ON',\n  /** The platform fee is absorbed by the merchant. */\n  ABSORBED = 'ABSORBED',\n}\n\nexport interface QueryCatalogItemsRequest {\n  /**\n   * A list of itemIDs to filter by. If exists, the result will only include the items with the IDs passed.\n   * @minLength 1\n   * @maxLength 100\n   * @maxSize 100\n   */\n  catalogItemIds?: string[] | null;\n  /**\n   * An item name to filter by. If exists, the result will only include items with name that starts with this string.\n   * @minLength 1\n   * @maxLength 100\n   */\n  catalogItemName?: string | null;\n  /** Paging options to limit and skip a number of items. */\n  paging?: Paging;\n  /**\n   * Optional, if exist add filter by numericId gt last_numeric_id\n   * https://dev.wix.com/api/rest/wix-stores/pagination#wix-stores_pagination_pagination\n   */\n  lastNumericId?: string | null;\n}\n\nexport interface Paging {\n  /** Number of items to load. */\n  limit?: number | null;\n  /** Number of items to skip in the current sort order. */\n  offset?: number | null;\n}\n\nexport interface QueryCatalogItemsResponse {\n  /** Catalog info and item data. */\n  catalogItems?: BasicItem[];\n  /** Paging metadata. */\n  metadata?: PagingMetadata;\n}\n\nexport interface BasicItem {\n  /**\n   * The ID of the item.\n   * @minLength 1\n   * @maxLength 100\n   */\n  _id?: string;\n  /** The name of the item. */\n  name?: string;\n  /** Item Media items. */\n  image?: string[];\n  /** The current status of the inventory */\n  inStock?: boolean;\n  /** current version of an item. Each time the item is modified, its `revision` changes */\n  revision?: string | null;\n  /**\n   * Unique numeric ID\n   * @readonly\n   */\n  numericId?: string | null;\n}\n\nexport interface NumericPropertyRange {\n  /** Minimum value. */\n  minValue?: number;\n  /** Maximum value. */\n  maxValue?: number;\n}\n\nexport interface PagingMetadata {\n  /** Number of items returned in the response. */\n  count?: number | null;\n  /** Offset that was requested. */\n  offset?: number | null;\n  /** Total number of items that match the query. */\n  total?: number | null;\n  /** Flag that indicates the server failed to calculate the `total` field. */\n  tooManyToCount?: boolean | null;\n}\n\nexport interface CatalogSPIConfig {\n  /** Base URI which Wix eCommerce will call to access Catalog service plugin endpoints. For example, to call the Get Catalog Items endpoint at `https://my-external-catalog.com/get-catalog-items`, the base URI you provide here is `https://my-external-catalog.com`. */\n  deploymentUri?: string;\n  /** Configuration details for discounts applied to all items in the catalog. */\n  allItemsDiscount?: AllItemsDiscountConfig;\n  /** Configuration details for discounts applied to specific items in the catalog. */\n  specificItemsDiscount?: SpecificItemsDiscountConfig;\n}\n\n/** Configuration for all items discount functionality in the catalog. */\nexport interface AllItemsDiscountConfig {\n  /**\n   * Whether the discount is enabled.\n   *\n   * Default: `false`.\n   */\n  enabled?: boolean;\n  /**\n   * Translatable name for \"all items discount\" in the catalog.\n   * For example, for restaurant menus, this could be \"All dishes\".\n   * @minLength 1\n   * @maxLength 100\n   */\n  name?: string | null;\n}\n\n/** Configuration for discount functionality in the catalog. */\nexport interface SpecificItemsDiscountConfig {\n  /**\n   * Whether the discount is enabled.\n   *\n   * Default: `false`.\n   */\n  enabled?: boolean;\n  /**\n   * Translatable name for \"all items discount\" in the catalog.\n   * @minLength 1\n   * @maxLength 100\n   */\n  name?: string | null;\n}\n\n/**\n * this message is not directly used by any service,\n * it exists to describe the expected parameters that SHOULD be provided to invoked Velo methods as part of open-platform.\n * e.g. SPIs, event-handlers, etc..\n * NOTE: this context object MUST be provided as the last argument in each Velo method signature.\n *\n * Example:\n * ```typescript\n * export function wixStores_onOrderCanceled({ event, metadata }: OrderCanceledEvent) {\n * ...\n * }\n * ```\n */\nexport interface Context {\n  /** A unique identifier of the request. You may print this ID to your logs to help with future debugging and easier correlation with Wix's logs. */\n  requestId?: string | null;\n  /**\n   * [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) 3-letter currency code.\n   * @format CURRENCY\n   */\n  currency?: string | null;\n  /** An object that describes the identity that triggered this request. */\n  identity?: IdentificationData;\n  /** A string representing a language and region in the format of `\"xx-XX\"`. First 2 letters represent the language code according to ISO 639-1. This is followed by a dash \"-\", and then a by 2 capital letters representing the region according to ISO 3166-2. For example, `\"en-US\"`. */\n  languages?: string[];\n  /**\n   * The service provider app's instance ID.\n   * @format GUID\n   */\n  instanceId?: string | null;\n}\n\nexport enum IdentityType {\n  UNKNOWN = 'UNKNOWN',\n  ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n  MEMBER = 'MEMBER',\n  WIX_USER = 'WIX_USER',\n  APP = 'APP',\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n  /** @readonly */\n  identityType?: IdentityType;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n}\n","import { ServicePluginDefinition } from '@wix/sdk-types';\nimport {\n  Context,\n  GetCatalogItemsRequest,\n  GetCatalogItemsResponse,\n} from './service-plugins-types.js';\nimport { transformSDKImageToRESTImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformSDKPageURLV2ToRESTPageURLV2 } from '@wix/sdk-runtime/transformations/page-url-v2';\nimport { transformSDKFloatToRESTFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformSDKTimestampToRESTTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport {\n  renameKeysFromSDKRequestToRESTRequest,\n  renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\n\nexport interface GetCatalogItemsEnvelope {\n  request: GetCatalogItemsRequest;\n  metadata: Context;\n}\n\nexport const provideHandlers = ServicePluginDefinition<{\n  /**\n   *\n   * Retrieves data for specified items in a specified catalog.\n   *\n   * Wix calls this method whenever a cart or checkout is updated, and when an item is added to an order.\n   *\n   * The method receives a `catalogReferences` array. Each catalog reference in the array contains:\n   * + The ID of the item whose latest information Wix needs to retrieve.\n   * + The ID of the app providing the catalog containing the item.\n   * + Optional details about preferences or customization of the item.\n   *\n   * The method also receives preferences for the currency and weight unit to be used in the response.\n   *\n   * Your external catalog can store and organize item details in any way you prefer.\n   * When implementing the Catalog service plugin, learn how to [handle item variants](https://dev.wix.com/docs/rest/business-solutions/e-commerce/catalog-service-plugin/handle-item-variants) in a way that meets your needs.\n   *\n   * The method's response must contain a `catalogItems` array. Each item in the array must contain:\n   * + A `catalogReference` object. This must be identical to the `catalogReference` object received in the request.\n   * + A `data` object with full details about the item.\n   *\n   * > **Notes:**\n   * > + If an item doesn't exist in the catalog, the response must exclude it from the `catalogItems` array in the response.\n   * > + When none of the items requested exist in the catalog, `catalogItems` must contain an empty array.\n   * > + Wix calls the method every time a cart or checkout is updated. If the response doesn't include an item that was already in the cart or checkout, Wix removes the item from the cart or checkout. */\n  getCatalogItems(\n    payload: GetCatalogItemsEnvelope\n  ): GetCatalogItemsResponse | Promise<GetCatalogItemsResponse>;\n}>('ECOM_CATALOG', [\n  {\n    name: 'getCatalogItems',\n    primaryHttpMappingPath: '/get-catalog-items',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = transformPaths(payload, [\n          {\n            transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n            paths: [{ path: 'catalogItems.data.url' }],\n          },\n          {\n            transformFn: transformSDKImageToRESTImage,\n            paths: [{ path: 'catalogItems.data.media' }],\n          },\n          {\n            transformFn: transformSDKFloatToRESTFloat,\n            paths: [{ path: 'catalogItems.data.physicalProperties.weight' }],\n          },\n          {\n            transformFn: transformSDKTimestampToRESTTimestamp,\n            paths: [\n              {\n                path: 'catalogItems.data.subscriptionOptionInfo.subscriptionSettings.startDate',\n              },\n              { path: 'catalogItems.data.serviceProperties.scheduledDate' },\n              { path: 'catalogItems.data.serviceProperties.endDate' },\n            ],\n          },\n        ]);\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n]);\n","import './interfaces-ecommerce-v1-catalog-provider.public.js';\nimport { createServicePluginModule } from '@wix/sdk-runtime/service-plugin-modules';\nimport { BuildServicePluginDefinition } from '@wix/sdk-types';\nimport { provideHandlers as publicProvideHandlers } from './interfaces-ecommerce-v1-catalog-provider.public.js';\n\nexport { publicProvideHandlers };\n\nexport const provideHandlers: BuildServicePluginDefinition<\n  typeof publicProvideHandlers\n> &\n  typeof publicProvideHandlers = createServicePluginModule(\n  publicProvideHandlers\n);\n"]}