@geins/types 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/codegen.ts +49 -0
  2. package/dist/api-client/index.d.ts +23 -0
  3. package/dist/cms/contentArea.d.ts +50 -0
  4. package/dist/cms/index.d.ts +2 -0
  5. package/dist/cms/menu.d.ts +10 -0
  6. package/dist/common/channel.d.ts +4 -0
  7. package/dist/common/event.d.ts +39 -0
  8. package/dist/common/index.d.ts +21 -0
  9. package/dist/crm/auth.d.ts +152 -0
  10. package/dist/crm/index.d.ts +1 -0
  11. package/dist/generated/graphql.d.ts +3832 -0
  12. package/dist/generated/index.d.ts +1 -0
  13. package/dist/index.cjs +1257 -0
  14. package/dist/index.d.ts +7 -0
  15. package/dist/index.esm.js +1257 -0
  16. package/dist/pim/brand.d.ts +19 -0
  17. package/dist/pim/filter.d.ts +31 -0
  18. package/dist/pim/index.d.ts +3 -0
  19. package/dist/pim/list.d.ts +31 -0
  20. package/dist/search/index.d.ts +1 -0
  21. package/dist/search/product.d.ts +11 -0
  22. package/package.json +28 -0
  23. package/rollup.config.js +18 -0
  24. package/src/api-client/index.ts +25 -0
  25. package/src/cms/contentArea.ts +59 -0
  26. package/src/cms/index.ts +2 -0
  27. package/src/cms/menu.ts +28 -0
  28. package/src/common/channel.ts +46 -0
  29. package/src/common/event.ts +43 -0
  30. package/src/common/index.ts +27 -0
  31. package/src/crm/auth.ts +177 -0
  32. package/src/crm/index.ts +2 -0
  33. package/src/crm/userOrders.ts +55 -0
  34. package/src/generated/graphql.ts +4103 -0
  35. package/src/generated/index.ts +1 -0
  36. package/src/index.ts +7 -0
  37. package/src/pim/brand.ts +21 -0
  38. package/src/pim/filter.ts +34 -0
  39. package/src/pim/index.ts +3 -0
  40. package/src/pim/list.ts +38 -0
  41. package/src/pim/product.ts +0 -0
  42. package/src/pim/shared.ts +14 -0
  43. package/src/search/index.ts +1 -0
  44. package/src/search/product.ts +12 -0
  45. package/tsconfig.json +18 -0
@@ -0,0 +1,1257 @@
1
+ /**
2
+ * Event type
3
+ * Events emitted by the SDK to listen to
4
+ * @enum
5
+ * @name GeinsEventType
6
+ */
7
+ var GeinsEventType;
8
+ (function (GeinsEventType) {
9
+ // User
10
+ GeinsEventType["USER"] = "USER";
11
+ GeinsEventType["USER_LOGIN"] = "USER_LOGIN";
12
+ GeinsEventType["USER_LOGOUT"] = "USER_LOGOUT";
13
+ GeinsEventType["USER_UPDATE"] = "USER_UPDATE";
14
+ GeinsEventType["USER_DELETE"] = "USER_DELETE";
15
+ // Cart
16
+ GeinsEventType["CART"] = "CART";
17
+ GeinsEventType["CART_ADD"] = "CART_ADD";
18
+ GeinsEventType["CART_REMOVE"] = "CART_REMOVE";
19
+ GeinsEventType["CART_UPDATE"] = "CART_UPDATE";
20
+ GeinsEventType["CART_CLEAR"] = "CART_CLEAR";
21
+ })(GeinsEventType || (GeinsEventType = {}));
22
+
23
+ var AuthClientConnectionModes;
24
+ (function (AuthClientConnectionModes) {
25
+ AuthClientConnectionModes["Proxy"] = "Proxy";
26
+ AuthClientConnectionModes["Direct"] = "Direct";
27
+ })(AuthClientConnectionModes || (AuthClientConnectionModes = {}));
28
+
29
+ var ProductListSortType;
30
+ (function (ProductListSortType) {
31
+ ProductListSortType["NONE"] = "NONE";
32
+ ProductListSortType["PRICE"] = "PRICE";
33
+ ProductListSortType["PRICE_DESC"] = "PRICE_DESC";
34
+ ProductListSortType["MOST_SOLD"] = "MOST_SOLD";
35
+ ProductListSortType["VOTES"] = "VOTES";
36
+ ProductListSortType["BRAND"] = "BRAND";
37
+ ProductListSortType["LATEST"] = "LATEST";
38
+ ProductListSortType["RELEVANCE"] = "RELEVANCE";
39
+ ProductListSortType["FACET_ORDER"] = "FACET_ORDER";
40
+ ProductListSortType["ALPHABETICAL"] = "ALPHABETICAL";
41
+ ProductListSortType["ALPHABETICAL_DESC"] = "ALPHABETICAL_DESC";
42
+ ProductListSortType["AVAILABLE_STOCK"] = "AVAILABLE_STOCK";
43
+ ProductListSortType["AVAILABLE_STOCK_DESC"] = "AVAILABLE_STOCK_DESC";
44
+ ProductListSortType["TOTAL_STOCK"] = "TOTAL_STOCK";
45
+ ProductListSortType["TOTAL_STOCK_DESC"] = "TOTAL_STOCK_DESC";
46
+ })(ProductListSortType || (ProductListSortType = {}));
47
+
48
+ var ProductFilterModeType;
49
+ (function (ProductFilterModeType) {
50
+ ProductFilterModeType["BY_GROUP"] = "BY_GROUP";
51
+ ProductFilterModeType["CURRENT"] = "CURRENT";
52
+ })(ProductFilterModeType || (ProductFilterModeType = {}));
53
+ var FilterSystemEntityTypes;
54
+ (function (FilterSystemEntityTypes) {
55
+ FilterSystemEntityTypes["Brand"] = "Brand";
56
+ FilterSystemEntityTypes["Category"] = "Category";
57
+ FilterSystemEntityTypes["Price"] = "Price";
58
+ FilterSystemEntityTypes["Sku"] = "Sku";
59
+ FilterSystemEntityTypes["StockStatus"] = "StockStatus";
60
+ FilterSystemEntityTypes["DiscountCampaign"] = "DiscountCampaign";
61
+ FilterSystemEntityTypes["DiscountCampaignNumber"] = "DiscountCampaignNumber";
62
+ FilterSystemEntityTypes["Discount"] = "Discount";
63
+ FilterSystemEntityTypes["ReducedPrice"] = "ReducedPrice";
64
+ })(FilterSystemEntityTypes || (FilterSystemEntityTypes = {}));
65
+
66
+ var GeinsCheckoutStatus;
67
+ (function (GeinsCheckoutStatus) {
68
+ GeinsCheckoutStatus["CustomerBlacklistedType"] = "CUSTOMER_BLACKLISTED";
69
+ GeinsCheckoutStatus["OkType"] = "OK";
70
+ })(GeinsCheckoutStatus || (GeinsCheckoutStatus = {}));
71
+ /** Customer type */
72
+ var GeinsCustomerType;
73
+ (function (GeinsCustomerType) {
74
+ /** Organization */
75
+ GeinsCustomerType["OrganizationType"] = "ORGANIZATION";
76
+ /** Private person */
77
+ GeinsCustomerType["PersonType"] = "PERSON";
78
+ })(GeinsCustomerType || (GeinsCustomerType = {}));
79
+ var GeinsDiscountType;
80
+ (function (GeinsDiscountType) {
81
+ GeinsDiscountType["NoneType"] = "NONE";
82
+ GeinsDiscountType["PriceCampaignType"] = "PRICE_CAMPAIGN";
83
+ GeinsDiscountType["SalePriceType"] = "SALE_PRICE";
84
+ })(GeinsDiscountType || (GeinsDiscountType = {}));
85
+ /** Filter mode */
86
+ var GeinsFilterMode;
87
+ (function (GeinsFilterMode) {
88
+ /** Get the counts for the results, including the ones excluded by the groups */
89
+ GeinsFilterMode["ByGroupType"] = "BY_GROUP";
90
+ /** Get the counts for the current filter results */
91
+ GeinsFilterMode["CurrentType"] = "CURRENT";
92
+ })(GeinsFilterMode || (GeinsFilterMode = {}));
93
+ var GeinsGender;
94
+ (function (GeinsGender) {
95
+ GeinsGender["ManType"] = "MAN";
96
+ GeinsGender["UnspecifiedType"] = "UNSPECIFIED";
97
+ GeinsGender["WomanType"] = "WOMAN";
98
+ })(GeinsGender || (GeinsGender = {}));
99
+ /** Payment types */
100
+ var GeinsPaymentType;
101
+ (function (GeinsPaymentType) {
102
+ /** Avarda */
103
+ GeinsPaymentType["AvardaType"] = "AVARDA";
104
+ /** Klarna */
105
+ GeinsPaymentType["KlarnaType"] = "KLARNA";
106
+ /** Standard */
107
+ GeinsPaymentType["StandardType"] = "STANDARD";
108
+ /** Svea */
109
+ GeinsPaymentType["SveaType"] = "SVEA";
110
+ /** Walley */
111
+ GeinsPaymentType["WalleyType"] = "WALLEY";
112
+ })(GeinsPaymentType || (GeinsPaymentType = {}));
113
+ /** Product relation type */
114
+ var GeinsProductRelation;
115
+ (function (GeinsProductRelation) {
116
+ /** Product is an accessory to this product */
117
+ GeinsProductRelation["AccessoriesType"] = "ACCESSORIES";
118
+ /** Product is related to this product */
119
+ GeinsProductRelation["RelatedType"] = "RELATED";
120
+ /** Product is similar to this product */
121
+ GeinsProductRelation["SimilarType"] = "SIMILAR";
122
+ })(GeinsProductRelation || (GeinsProductRelation = {}));
123
+ /** Sort types */
124
+ var GeinsSortType;
125
+ (function (GeinsSortType) {
126
+ /** Sort by alphabetical */
127
+ GeinsSortType["AlphabeticalType"] = "ALPHABETICAL";
128
+ /** Sort by alphabetical, in descending order */
129
+ GeinsSortType["AlphabeticalDescType"] = "ALPHABETICAL_DESC";
130
+ /** Sort by available stock balance */
131
+ GeinsSortType["AvailableStockType"] = "AVAILABLE_STOCK";
132
+ /** Sort by available stock balance, in descending order */
133
+ GeinsSortType["AvailableStockDescType"] = "AVAILABLE_STOCK_DESC";
134
+ /** Sort by brand */
135
+ GeinsSortType["BrandType"] = "BRAND";
136
+ /** Sort by custom value 1 */
137
+ GeinsSortType["Custom_1Type"] = "CUSTOM_1";
138
+ /** Sort by custom value 2 */
139
+ GeinsSortType["Custom_2Type"] = "CUSTOM_2";
140
+ /** Sort by custom value 3 */
141
+ GeinsSortType["Custom_3Type"] = "CUSTOM_3";
142
+ /** Sort by custom value 4 */
143
+ GeinsSortType["Custom_4Type"] = "CUSTOM_4";
144
+ /** Sort by custom value 5 */
145
+ GeinsSortType["Custom_5Type"] = "CUSTOM_5";
146
+ /** Sort by facets */
147
+ GeinsSortType["FacetOrderType"] = "FACET_ORDER";
148
+ /** Sort by latest products */
149
+ GeinsSortType["LatestType"] = "LATEST";
150
+ /** Sort by most sold */
151
+ GeinsSortType["MostSoldType"] = "MOST_SOLD";
152
+ /** No sorting */
153
+ GeinsSortType["NoneType"] = "NONE";
154
+ /** Sort by price */
155
+ GeinsSortType["PriceType"] = "PRICE";
156
+ /** Sort by price, in descending order */
157
+ GeinsSortType["PriceDescType"] = "PRICE_DESC";
158
+ /** Sort by relevance */
159
+ GeinsSortType["RelevanceType"] = "RELEVANCE";
160
+ /** Sort by total stock balance, including oversellable */
161
+ GeinsSortType["TotalStockType"] = "TOTAL_STOCK";
162
+ /** Sort by total stock balance, including oversellable, in descending order */
163
+ GeinsSortType["TotalStockDescType"] = "TOTAL_STOCK_DESC";
164
+ /** Sort by votes */
165
+ GeinsSortType["VotesType"] = "VOTES";
166
+ })(GeinsSortType || (GeinsSortType = {}));
167
+ /**
168
+ * @typedef {Object} AddressInputType
169
+ * @property {string} [addressLine1]
170
+ * @property {string} [addressLine2]
171
+ * @property {string} [addressLine3]
172
+ * @property {string} [careOf]
173
+ * @property {string} [city]
174
+ * @property {string} [company]
175
+ * @property {string} [country]
176
+ * @property {string} [entryCode]
177
+ * @property {string} [firstName]
178
+ * @property {string} [lastName]
179
+ * @property {string} [mobile]
180
+ * @property {string} [phone]
181
+ * @property {string} [state]
182
+ * @property {string} [zip]
183
+ */
184
+ /**
185
+ * @typedef {Object} AddressType
186
+ * @property {string} addressLine1
187
+ * @property {string} addressLine2
188
+ * @property {string} addressLine3
189
+ * @property {string} careOf
190
+ * @property {string} city
191
+ * @property {string} company
192
+ * @property {string} country
193
+ * @property {string} entryCode
194
+ * @property {string} firstName
195
+ * @property {string} lastName
196
+ * @property {string} mobile
197
+ * @property {string} phone
198
+ * @property {string} state
199
+ * @property {string} zip
200
+ */
201
+ /**
202
+ * Type containing information about alternative urls to an entity
203
+ * @typedef {Object} AlternativeUrlType
204
+ * @property {string} channelId - The id of the channel that the alternative url exists on
205
+ * @property {string} [country] - The country code of the alternative url
206
+ * @property {string} culture - The culture of the alternative url
207
+ * @property {string} language - The language code of the alternative url
208
+ * @property {string} url - Alternative url
209
+ */
210
+ /**
211
+ * Type containing account balance information
212
+ * @typedef {Object} BalanceType
213
+ * @property {Decimal} pending - The amount that will be used for this order
214
+ * @property {string} [pendingFormatted] - Pending balance, formatted as a currency string
215
+ * @property {Decimal} remaining - The remaining account balance
216
+ * @property {string} [remainingFormatted] - Remaining account balance, formatted as a currency string
217
+ * @property {Decimal} totalSellingPriceExBalanceExVat - The cart total selling price excl. VAT if balance hadn't been withdrawn.
218
+ * @property {string} [totalSellingPriceExBalanceExVatFormatted] - Cart total excl. VAT, excl. balance, formatted as a currency string
219
+ * @property {Decimal} totalSellingPriceExBalanceIncVat - The cart total selling price incl. VAT if balance hadn't been withdrawn .
220
+ * @property {string} [totalSellingPriceExBalanceIncVatFormatted] - Cart total incl. VAT, excl. balance, formatted as a currency string
221
+ */
222
+ /**
223
+ * Type containing brand listing information
224
+ * @typedef {Object} BrandListType
225
+ * @property {string} [alias] - Brand alias
226
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the brand - DEPRECATED: Use AlternativeUrls instead.
227
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the brand
228
+ * @property {string} [backgroundImage] - Background image
229
+ * @property {number} brandId - Brand ID
230
+ * @property {string} [canonicalUrl] - The full path for this brand. e.g. '/l/brand-1'
231
+ * @property {string} [description] - Brand description
232
+ * @property {string} [logo] - Brand logo
233
+ * @property {string} [name] - Brand name
234
+ * @property {string} [primaryImage] - Primary image
235
+ * @property {string} [secondaryDescription] - Secondary description
236
+ */
237
+ /**
238
+ * Type containing brand information
239
+ * @typedef {Object} BrandType
240
+ * @property {string} [alias] - Brand alias
241
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the brand - DEPRECATED: Use AlternativeUrls instead.
242
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the brand
243
+ * @property {number} brandId - Brand ID
244
+ * @property {string} [canonicalUrl] - The full path for this brand. e.g. '/l/brand-1'
245
+ * @property {string} [description] - Brand description
246
+ * @property {string} [name] - Brand name
247
+ */
248
+ /**
249
+ * Type containing breadcrumb information
250
+ * @typedef {Object} BreadcrumbType
251
+ * @property {number} categoryId - Category ID
252
+ * @property {string} name - Breadcrumb display name
253
+ * @property {number} parentCategoryId - Parent category ID
254
+ * @property {string} [url] - Breadcrumb path
255
+ */
256
+ /**
257
+ * Type containing campaign price information
258
+ * @typedef {Object} CampaignPriceType
259
+ * @property {Decimal} discount - Campaign price discount
260
+ * @property {Decimal} discountPercentage - Campaign price discount percentage
261
+ * @property {PriceType} [price] - Campaign price
262
+ * @property {number} quantity - Campaign price quantity
263
+ */
264
+ /**
265
+ * Type containing campaign rule information
266
+ * @typedef {Object} CampaignRuleType
267
+ * @property {string} [action] - Campaign action
268
+ * @property {string} [actionValue] - Campaign action value
269
+ * @property {string} campaignId - Campaign ID
270
+ * @property {string} [canonicalUrl] - The url to this campaign, if any
271
+ * @property {string} [category] - Campaign category
272
+ * @property {boolean} [hideTitle] - Whether to hide the campaign title
273
+ * @property {string} [name] - Campaign name
274
+ * @property {string} [ruleType] - Campaign rule type
275
+ */
276
+ /**
277
+ * Type containing campaign information
278
+ * @typedef {Object} CampaignType
279
+ * @property {Array<(CampaignRuleType|null|undefined)>} [appliedCampaigns] - Applied campaigns
280
+ * @property {Array<(CampaignPriceType|null|undefined)>} [prices] - Campaign prices
281
+ */
282
+ /**
283
+ * Type containing information about cart fees
284
+ * @typedef {Object} CartFeesType
285
+ * @property {Decimal} paymentFeeExVat - Payment fee excl. VAT
286
+ * @property {Decimal} paymentFeeIncVat - Payment fee incl. VAT
287
+ * @property {Decimal} shippingFeeExVat - Shipping fee excl. VAT
288
+ * @property {Decimal} shippingFeeIncVat - Shipping fee incl. VAT
289
+ */
290
+ /**
291
+ * @typedef {Object} CartGroupInputType
292
+ * @property {string} [groupKey]
293
+ * @property {number} quantity
294
+ */
295
+ /**
296
+ * @typedef {Object} CartItemInputType
297
+ * @property {string} [groupKey]
298
+ * @property {string} [id]
299
+ * @property {string} [message]
300
+ * @property {number} quantity
301
+ * @property {number} [skuId]
302
+ */
303
+ /**
304
+ * Type containing cart item information
305
+ * @typedef {Object} CartItemType
306
+ * @property {CampaignType} [campaign] - Campaign
307
+ * @property {string} [groupKey] - The key of the group that this cart item belong to
308
+ * @property {string} id - Cart item Id
309
+ * @property {string} [message] - Custom message
310
+ * @property {ProductType} [product] - Product
311
+ * @property {ProductPackageCartItemType} [productPackage] - Contains package meta data if the cart item was part of package
312
+ * @property {number} quantity - Quantity
313
+ * @property {number} skuId - SKU Id
314
+ * @property {PriceType} [totalPrice] - Total price
315
+ * @property {PriceType} [unitPrice] - Price per unit
316
+ */
317
+ /**
318
+ * Type containing cart summary information
319
+ * @typedef {Object} CartSummaryType
320
+ * @property {BalanceType} [balance] - Account balance information
321
+ * @property {CartFeesType} [fees] - Cart fee information
322
+ * @property {Decimal} fixedAmountDiscountExVat - Cart fixed discount amount excl. VAT
323
+ * @property {Decimal} fixedAmountDiscountIncVat - Cart fixed discount amount incl. VAT
324
+ * @property {PaymentOptionType} [payment] - Cart payment option information
325
+ * @property {ShippingOptionType} [shipping] - Cart shipping option information
326
+ * @property {PriceType} [subTotal] - Cart sub-total
327
+ * @property {PriceType} [total] - Cart total
328
+ * @property {Array<(VatGroupType|null|undefined)>} [vats] - Cart VAT information
329
+ */
330
+ /**
331
+ * Type containing cart information
332
+ * @typedef {Object} CartType
333
+ * @property {Array<(CampaignRuleType|null|undefined)>} [appliedCampaigns] - Campaigns applied to this cart
334
+ * @property {Decimal} fixedDiscount - Cart fixed discount
335
+ * @property {boolean} freeShipping - Whether the cart has free shipping
336
+ * @property {string} [id] - The cart ID
337
+ * @property {boolean} isCompleted - If true, the cart can not be modified further
338
+ * @property {Array<(CartItemType|null|undefined)>} [items] - The cart items
339
+ * @property {string} [promoCode] - Cart promo code
340
+ * @property {CartSummaryType} [summary] - The cart summary
341
+ */
342
+ /**
343
+ * Type containing category information
344
+ * @typedef {Object} CategoryType
345
+ * @property {string} [alias] - Category alias
346
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the category - DEPRECATED: Use AlternativeUrls instead.
347
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the category
348
+ * @property {string} [backgroundImage] - Background image
349
+ * @property {string} canonicalUrl - The full path to the category. e.g. '/l/category-1'
350
+ * @property {number} categoryId - Category ID
351
+ * @property {string} [description] - Category description
352
+ * @property {GoogleTaxonomyType} [googleTaxonomy] - Google taxonomy data for this category
353
+ * @property {boolean} [isHidden] - Category is hidden
354
+ * @property {string} name - Category name
355
+ * @property {number} order - Category display order
356
+ * @property {number} parentCategoryId - Parent category ID
357
+ * @property {string} [primaryImage] - Primary image
358
+ * @property {string} [secondaryDescription] - Category secondary description
359
+ */
360
+ /**
361
+ * Type containing all information about the channel-type
362
+ * @typedef {Object} ChannelType
363
+ * @property {string} defaultLanguageId - Default language ID used if no other is specified, or an invalid is supplied.
364
+ * @property {string} defaultMarketId - Default market ID used if no other is specified, or an invalid is supplied.
365
+ * @property {string} id - ID
366
+ * @property {Array<(LanguageType|null|undefined)>} [languages]
367
+ * @property {Array<(MarketType|null|undefined)>} [markets]
368
+ * @property {string} name - Name
369
+ * @property {string} type - Type
370
+ * @property {string} url - Base URL
371
+ */
372
+ /**
373
+ * @typedef {Object} CheckoutAndOrderType
374
+ * @property {string} htmlSnippet - HTML-snippet
375
+ * @property {CheckoutOrderType} [order] - Order details
376
+ */
377
+ /**
378
+ * @typedef {Object} CheckoutDataType
379
+ * @property {CartType} [cart] - The order details represented as a cart object.
380
+ * @property {boolean} [completed] - Indicates if the purchase has been completed. This may not be available for all payment types
381
+ * @property {string} [htmlSnippet] - HTML-snippet
382
+ * @property {boolean} newCheckoutSession - True if this is a new checkout session
383
+ * @property {number} nthPurchase - The total number of purchases that the customer has done including this one
384
+ * @property {CheckoutOrderType} [order] - Order details
385
+ */
386
+ /**
387
+ * @typedef {Object} CheckoutInputType
388
+ * @property {Array<(string|null|undefined)>} [acceptedConsents]
389
+ * @property {AddressInputType} [billingAddress]
390
+ * @property {CustomerType} [customerType]
391
+ * @property {DateTime} [desiredDeliveryDate]
392
+ * @property {string} [email]
393
+ * @property {Decimal} [externalShippingFee]
394
+ * @property {string} [externalShippingId]
395
+ * @property {string} [identityNumber]
396
+ * @property {string} [merchantData]
397
+ * @property {string} [message]
398
+ * @property {number} [paymentId]
399
+ * @property {string} [pickupPoint]
400
+ * @property {AddressInputType} [shippingAddress]
401
+ * @property {number} [shippingId]
402
+ */
403
+ /**
404
+ * @typedef {Object} CheckoutOrderRowType
405
+ * @property {string} [articleNumber] - Article number
406
+ * @property {string} [brand] - Brand name
407
+ * @property {Array<(string|null|undefined)>} [campaignIds] - Campaign IDs
408
+ * @property {Array<(string|null|undefined)>} [campaignNames] - Campaign names
409
+ * @property {Array<(string|null|undefined)>} [categories] - Categories
410
+ * @property {Decimal} discountExVat - Discount excl. VAT
411
+ * @property {Decimal} discountIncVat - Discount incl. VAT
412
+ * @property {number} discountRate - Discount rate
413
+ * @property {string} [externalId] - ExternalId
414
+ * @property {string} [gtin] - GTIN
415
+ * @property {number} height - Height
416
+ * @property {string} [imageUrl] - Product image URL
417
+ * @property {number} length - Length
418
+ * @property {string} [message] - Message
419
+ * @property {string} [name] - Name
420
+ * @property {Decimal} priceExVat - Price excl. VAT
421
+ * @property {Decimal} priceIncVat - Price incl. VAT
422
+ * @property {number} productId - ProductId
423
+ * @property {number} [productPriceCampaignId] - ProductPriceCampaignId
424
+ * @property {number} [productPriceListId] - Product price list ID
425
+ * @property {string} [productUrl] - ProductUrl
426
+ * @property {number} quantity - Quantity
427
+ * @property {string} [sku] - SKU
428
+ * @property {string} [variant] - Variant
429
+ * @property {number} weight - Weight
430
+ * @property {number} width - Width
431
+ */
432
+ /**
433
+ * @typedef {Object} CheckoutOrderType
434
+ * @property {Array<(string|null|undefined)>} [campaignIds] - Campaign IDs
435
+ * @property {Array<(string|null|undefined)>} [campaignNames] - Campaign names
436
+ * @property {string} [currency] - Currency
437
+ * @property {Decimal} discountExVat - Discount excl. VAT
438
+ * @property {Decimal} discountIncVat - Discount incl. VAT
439
+ * @property {string} [email] - E-mail
440
+ * @property {string} [firstName] - First name
441
+ * @property {Decimal} itemValueExVat - Item-value excl. VAT
442
+ * @property {Decimal} itemValueIncVat - Item-value incl. VAT
443
+ * @property {string} [lastName] - Last name
444
+ * @property {string} marketId - Market ID.
445
+ * @property {string} [message] - Order message
446
+ * @property {string} [orderId] - Order ID
447
+ * @property {Decimal} orderValueExVat - Order excl. VAT
448
+ * @property {Decimal} orderValueIncVat - Order incl. VAT
449
+ * @property {Decimal} paymentFeeExVat - Payment excl. VAT
450
+ * @property {Decimal} paymentFeeIncVat - Payment incl. VAT
451
+ * @property {Array<(CheckoutOrderRowType|null|undefined)>} [rows] - Order rows
452
+ * @property {string} [secondaryTransactionId] - Secondary transaction ID
453
+ * @property {Decimal} shippingFeeExVat - Shipping excl. VAT
454
+ * @property {Decimal} shippingFeeIncVat - Shipping incl. VAT
455
+ * @property {Decimal} sum - Order sum
456
+ * @property {string} [transactionId] - Transaction ID
457
+ * @property {string} [zip] - Zip code
458
+ */
459
+ /**
460
+ * @typedef {("CUSTOMER_BLACKLISTED"|"OK")} CheckoutStatus
461
+ */
462
+ /**
463
+ * @typedef {Object} CheckoutType
464
+ * @property {AddressType} [billingAddress]
465
+ * @property {CartType} [cart]
466
+ * @property {CheckoutStatus} [checkoutStatus]
467
+ * @property {Array<(ConsentType|null|undefined)>} [consents]
468
+ * @property {string} [email]
469
+ * @property {string} [identityNumber]
470
+ * @property {Array<(PaymentOptionType|null|undefined)>} [paymentOptions]
471
+ * @property {AddressType} [shippingAddress]
472
+ * @property {string} [shippingData]
473
+ * @property {Array<(ShippingOptionType|null|undefined)>} [shippingOptions]
474
+ */
475
+ /**
476
+ * @typedef {Object} ConsentType
477
+ * @property {boolean} autoAccept
478
+ * @property {boolean} checked
479
+ * @property {string} description
480
+ * @property {string} name
481
+ * @property {string} type
482
+ */
483
+ /**
484
+ * Type containing all information about the country-type
485
+ * @typedef {Object} CountryType
486
+ * @property {string} code - Two-letter ISO code
487
+ * @property {string} name - Name
488
+ */
489
+ /**
490
+ * Type containing all information about the currency-type
491
+ * @typedef {Object} CurrencyType
492
+ * @property {string} code - Currency code
493
+ * @property {string} name - Name
494
+ * @property {Decimal} rate - Currency rate used to convert from this currency to default currency
495
+ * @property {string} symbol - Currency symbol
496
+ */
497
+ /**
498
+ * Customer type
499
+ * @typedef {("ORGANIZATION"|"PERSON")} CustomerType
500
+ */
501
+ /**
502
+ * The `DateTime` scalar type represents a date and time. `DateTime` expects timestamps to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard.
503
+ * @typedef {*} DateTime
504
+ */
505
+ /**
506
+ * @typedef {*} Decimal
507
+ */
508
+ /**
509
+ * SKU dimensions
510
+ * @typedef {Object} DimensionsType
511
+ * @property {number} height - Height
512
+ * @property {number} length - Length
513
+ * @property {number} width - Width
514
+ */
515
+ /**
516
+ * @typedef {("NONE"|"PRICE_CAMPAIGN"|"SALE_PRICE")} DiscountType
517
+ */
518
+ /**
519
+ * Type containing collection of filters
520
+ * @typedef {Object} FilterCollectionType
521
+ * @property {Array<(FilterType|null|undefined)>} [facets] - The collection of facet values returned from the query
522
+ * @property {PriceFilterType} [price] - The lowest / highest price found in the results
523
+ */
524
+ /**
525
+ * Filter options
526
+ * @typedef {Object} FilterInputType
527
+ * @property {Array<(string|null|undefined)>} [exclude] - A list of string values, that when specified will exclude products that are associated with one of the facets
528
+ * @property {Array<(string|null|undefined)>} [excludeFacets] - A list of string values, that when specified will exclude products that are associated with one of the facets
529
+ * @property {Array<(string|null|undefined)>} [facets] - A list of string values, that when specified will only include products associated with those values
530
+ * @property {FilterMode} [filterMode] - Filter mode
531
+ * @property {Array<(string|null|undefined)>} [include] - A list of string values, that when specified will only include products associated with those values
532
+ * @property {boolean} [includeCollapsed] - Include collapsed products
533
+ * @property {PriceFilterInputType} [price] - Price filter
534
+ * @property {Array<(number|null|undefined)>} [productIds] - A list of product ids to filter on
535
+ * @property {string} [searchText] - Search text to filter by
536
+ * @property {SortType} [sort] - Use this to sort the results in a particular way
537
+ */
538
+ /**
539
+ * Filter mode
540
+ * @typedef {("BY_GROUP"|"CURRENT")} FilterMode
541
+ */
542
+ /**
543
+ * Filter group
544
+ * @typedef {Object} FilterType
545
+ * @property {string} filterId - ID for this filter type
546
+ * @property {string} [group] - Parameter group name
547
+ * @property {string} [label] - Parameter group display name
548
+ * @property {string} [type] - Filter type. e.g. 'Parameter', 'Category', 'Sku'
549
+ * @property {Array<(FilterValueType|null|undefined)>} [values] - Collection of facet values in this group
550
+ */
551
+ /**
552
+ * Filter value
553
+ * @typedef {Object} FilterValueType
554
+ * @property {string} _id - FacetId_Count
555
+ * @property {Long} count - The amount of products in the results associated with this facet
556
+ * @property {string} [facetId] - Facet ID. Use this in the Facets-list in the products-query to retrieve products associated with it
557
+ * @property {boolean} hidden - If the filter for this facet is hidden
558
+ * @property {string} [label] - Facet display name
559
+ * @property {number} order - The display order of this facet
560
+ * @property {string} [parentId] - Parent ID. Only available for category-facets.0
561
+ * @property {string} [url] - The path associated with this facet. e.g. '/c/category-1'
562
+ */
563
+ /**
564
+ * @typedef {("MAN"|"UNSPECIFIED"|"WOMAN")} Gender
565
+ */
566
+ /**
567
+ * Type containing Google taxonomy data
568
+ * @typedef {Object} GoogleTaxonomyType
569
+ * @property {number} [id] - Google taxonomy ID
570
+ * @property {string} [name] - Google taxonomy name
571
+ * @property {number} [parentId] - Parent Google taxonomy ID
572
+ * @property {string} [path] - Google taxonomy path
573
+ */
574
+ /**
575
+ * Type containing information for a group in a product package
576
+ * @typedef {Object} GroupType
577
+ * @property {string} [description] - The package group description
578
+ * @property {number} groupId - The package group id
579
+ * @property {string} [image] - The package group image
580
+ * @property {string} [name] - The package group name
581
+ * @property {Array<(OptionType|null|undefined)>} [options] - Options in this package group
582
+ * @property {boolean} required - 'true' if this package group is required in order to place the package in cart
583
+ * @property {number} sortOrder - The sort order of this package group relative to other groups
584
+ */
585
+ /**
586
+ * @typedef {*} Guid
587
+ */
588
+ /**
589
+ * Type containing all information about the language-type
590
+ * @typedef {Object} LanguageType
591
+ * @property {string} code - Two-letter ISO code
592
+ * @property {string} id - Language ID
593
+ * @property {string} name - Language name
594
+ */
595
+ /**
596
+ * @typedef {*} Long
597
+ */
598
+ /**
599
+ * Type containing information about the lowest price during last 30 days and the legal comparison price (EU). Observe that discount is calculated against comparison price and not the regular price.
600
+ * @typedef {Object} LowestPriceType
601
+ * @property {Decimal} comparisonPriceExVat - The comparison price excluding VAT
602
+ * @property {string} [comparisonPriceExVatFormatted] - Comparison price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
603
+ * @property {Decimal} comparisonPriceIncVat - The comparison price including VAT
604
+ * @property {string} [comparisonPriceIncVatFormatted] - Comparison price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
605
+ * @property {Decimal} discountExVat - Discount amount excluding VAT.
606
+ * @property {string} [discountExVatFormatted] - Discount (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
607
+ * @property {Decimal} discountIncVat - Discount amount including VAT.
608
+ * @property {string} [discountIncVatFormatted] - Discount (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
609
+ * @property {number} discountPercentage - Discount percentage.
610
+ * @property {boolean} isDiscounted - Whether the price is discounted or not
611
+ * @property {Decimal} lowestPriceExVat - The lowest price excluding VAT
612
+ * @property {string} [lowestPriceExVatFormatted] - Lowest price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
613
+ * @property {Decimal} lowestPriceIncVat - The lowest price including VAT
614
+ * @property {string} [lowestPriceIncVatFormatted] - Lowest price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
615
+ * @property {Decimal} sellingPriceExVat - The selling price excluding VAT
616
+ * @property {string} [sellingPriceExVatFormatted] - Selling price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
617
+ * @property {Decimal} sellingPriceIncVat - The selling price including VAT
618
+ * @property {string} [sellingPriceIncVatFormatted] - Selling price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
619
+ * @property {Decimal} vat - VAT amount
620
+ * @property {string} [vatFormatted] - VAT amount, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
621
+ */
622
+ /**
623
+ * Type containing all information about the market-type
624
+ * @typedef {Object} MarketType
625
+ * @property {string} [alias] - The part of the market id that is used in the url.
626
+ * @property {Array<(LanguageType|null|undefined)>} [allowedLanguages]
627
+ * @property {CountryType} [country] - Country
628
+ * @property {CurrencyType} [currency] - Currency
629
+ * @property {string} defaultLanguageId - Default language ID used if no other is specified, or an invalid is supplied.
630
+ * @property {string} groupKey - Group key used to group related markets together, i.e. if they belong to the same region or continent.
631
+ * @property {string} id - ID
632
+ * @property {boolean} [onlyDisplayInCheckout] - Indicates if the market should only be displayed in the checkout process.
633
+ * @property {boolean} [virtual] - If true, indicates that the market is virtual. Virtual markets cannot be used in the checkout process
634
+ */
635
+ /**
636
+ * @typedef {Object} MenuItemType
637
+ * @property {string} [canonicalUrl]
638
+ * @property {Array<(MenuItemType|null|undefined)>} [children]
639
+ * @property {boolean} hidden
640
+ * @property {string} id
641
+ * @property {string} [label]
642
+ * @property {boolean} open
643
+ * @property {number} order
644
+ * @property {boolean} targetBlank
645
+ * @property {string} [title]
646
+ * @property {string} type
647
+ * @property {string} [value]
648
+ */
649
+ /**
650
+ * @typedef {Object} MenuType
651
+ * @property {Array<(string|null|undefined)>} [channels]
652
+ * @property {string} id
653
+ * @property {Array<(string|null|undefined)>} [languages]
654
+ * @property {Array<(string|null|undefined)>} [locations]
655
+ * @property {Array<(MenuItemType|null|undefined)>} [menuItems]
656
+ * @property {string} [name]
657
+ * @property {string} [title]
658
+ */
659
+ /**
660
+ * Type containing metadata
661
+ * @typedef {Object} MetadataType
662
+ * @property {string} [description] - Description
663
+ * @property {string} [keywords] - Keywords
664
+ * @property {string} [title] - Title
665
+ */
666
+ /**
667
+ * @typedef {Object} Mutation
668
+ * @property {CartType} [addPackageToCart]
669
+ * @property {CartType} [addToCart]
670
+ * @property {boolean} [commitReset]
671
+ * @property {CartType} [completeCart] - Marks the cart as completed, and makes it read-only
672
+ * @property {CheckoutType} [createOrUpdateCheckout]
673
+ * @property {boolean} [deleteUser]
674
+ * @property {boolean} [monitorProductAvailability]
675
+ * @property {PlaceOrderResponseType} [placeOrder]
676
+ * @property {boolean} [postProductReview]
677
+ * @property {boolean} [requestPasswordReset]
678
+ * @property {CartType} [setCartPromoCode] - Set a promo code on the cart
679
+ * @property {CheckoutType} [setCartShippingFee]
680
+ * @property {boolean} [subscribeToNewsletter]
681
+ * @property {CartType} [updateCartGroup] - Update the quantity of an entire cart group
682
+ * @property {CartType} [updateCartItem] - Update the cart item
683
+ * @property {UserType} [updateUser]
684
+ */
685
+ /**
686
+ * Type containing information for an option in a product package group
687
+ * @typedef {Object} OptionType
688
+ * @property {boolean} isSelected - 'true' if this option should be selected by default
689
+ * @property {number} optionId - The option id
690
+ * @property {ProductType} [product] - The product that this options refers to
691
+ * @property {number} quantity - The quantity of items that is chosen if this option is selected
692
+ * @property {number} sortOrder - The sort order of this option relative to other options
693
+ */
694
+ /**
695
+ * @typedef {Object} OrderType
696
+ * @property {AddressType} [billingAddress]
697
+ * @property {CartType} [cart]
698
+ * @property {DateTime} [completedAt]
699
+ * @property {DateTime} [createdAt]
700
+ * @property {string} [currency]
701
+ * @property {number} [customerId]
702
+ * @property {DateTime} [desiredDeliveryDate]
703
+ * @property {PriceType} [discount]
704
+ * @property {Decimal} fromBalance - The amount taken from account balance
705
+ * @property {string} [fromBalanceFormatted] - The amount taken from account balance. Formatted as a currency string.
706
+ * @property {number} [id]
707
+ * @property {string} [message]
708
+ * @property {PriceType} [orderTotal]
709
+ * @property {Array<(PaymentDetailsType|null|undefined)>} [paymentDetails]
710
+ * @property {PriceType} [paymentFee]
711
+ * @property {string} publicId
712
+ * @property {Array<(RefundType|null|undefined)>} [refunds]
713
+ * @property {AddressType} [shippingAddress]
714
+ * @property {Array<(ShippingDetailType|null|undefined)>} [shippingDetails]
715
+ * @property {PriceType} [shippingFee]
716
+ * @property {string} status
717
+ * @property {DateTime} [updatedAt]
718
+ * @property {PriceType} [vat]
719
+ */
720
+ /**
721
+ * Type containing widget page area information
722
+ * @typedef {Object} PageAreaType
723
+ * @property {number} id - ID
724
+ * @property {number} index - Index
725
+ * @property {string} [name] - Name
726
+ */
727
+ /**
728
+ * Type containing page information
729
+ * @typedef {Object} PageInfoType
730
+ * @property {string} alias - Alias
731
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the page - DEPRECATED: Use AlternativeUrls instead.
732
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the page
733
+ * @property {string} [backgroundImage] - Background image
734
+ * @property {string} [canonicalUrl] - Full path to the page
735
+ * @property {boolean} hideDescription - Whether the descriptions should be hidden
736
+ * @property {boolean} hideTitle - Whether the Name-field should be hidden
737
+ * @property {number} id - Page ID
738
+ * @property {string} [logo] - Logo
739
+ * @property {MetadataType} [meta] - Page metadata
740
+ * @property {string} name - Name
741
+ * @property {string} [primaryDescription] - Primary description
742
+ * @property {string} [primaryImage] - Primary image
743
+ * @property {string} [secondaryDescription] - Secondary description
744
+ * @property {Array<(CategoryType|null|undefined)>} [subCategories] - Page sub-categories
745
+ */
746
+ /**
747
+ * Type for filtering widgets
748
+ * @typedef {Object} PageWidgetCollectionFilterInputType
749
+ * @property {string} [key] - Filter key
750
+ * @property {string} [value] - Filter value
751
+ */
752
+ /**
753
+ * Type containing widget collection information
754
+ * @typedef {Object} PageWidgetCollectionType
755
+ * @property {Array<(PageWidgetContainerType|null|undefined)>} [containers] - Collection containers
756
+ * @property {string} [familyName] - Collection family name
757
+ * @property {number} id - Collection ID
758
+ * @property {MetadataType} [meta] - Collection metadata
759
+ * @property {string} name - Name
760
+ * @property {PageAreaType} [pageArea] - Collection page area
761
+ * @property {Array<(string|null|undefined)>} [tags] - List of tags
762
+ * @property {string} [title] - Title
763
+ */
764
+ /**
765
+ * Type containing widget container information
766
+ * @typedef {Object} PageWidgetContainerType
767
+ * @property {Array<(string|null|undefined)>} [classNames] - Container class names
768
+ * @property {string} design - Container design
769
+ * @property {number} id - ID
770
+ * @property {string} layout - Container layout
771
+ * @property {string} name - Name
772
+ * @property {string} responsiveMode - Container responsive mode
773
+ * @property {number} sortOrder - Sort order
774
+ * @property {Array<(PageWidgetType|null|undefined)>} [widgets] - Widgets in this container
775
+ */
776
+ /**
777
+ * Type containing widget image size information
778
+ * @typedef {Object} PageWidgetImageSizeType
779
+ * @property {number} imageHeight - Image height
780
+ * @property {number} imageRatio - Image ratio
781
+ * @property {number} imageWidth - Image width
782
+ */
783
+ /**
784
+ * Type containing widget image information
785
+ * @typedef {Object} PageWidgetImageType
786
+ * @property {string} fileName - Filename
787
+ * @property {PageWidgetImageSizeType} [largestSize] - Largest image size
788
+ * @property {Array<(PageWidgetImageSizeType|null|undefined)>} [sizes] - Image sizes
789
+ */
790
+ /**
791
+ * Type containing CMS page information
792
+ * @typedef {Object} PageWidgetPageType
793
+ * @property {DateTime} [activeFrom] - Active From
794
+ * @property {DateTime} [activeTo] - Active To
795
+ * @property {string} [alias] - Alias
796
+ * @property {string} [canonicalUrl] - The url to this cms page
797
+ * @property {number} id - Collection ID
798
+ * @property {MetadataType} [meta] - Collection metadata
799
+ * @property {string} name - Name
800
+ * @property {Array<(string|null|undefined)>} [tags] - List of tags
801
+ * @property {string} [title] - Title
802
+ */
803
+ /**
804
+ * Type containing widget information
805
+ * @typedef {Object} PageWidgetType
806
+ * @property {Array<(string|null|undefined)>} [classNames] - Class names
807
+ * @property {string} configuration - Configuration
808
+ * @property {string} id - ID
809
+ * @property {Array<(PageWidgetImageType|null|undefined)>} [images] - Images
810
+ * @property {string} name - Name
811
+ * @property {string} size - Size
812
+ * @property {number} sortOrder - Sort order
813
+ * @property {string} type - Widget Type
814
+ */
815
+ /**
816
+ * Type containing product parameter group information
817
+ * @typedef {Object} ParameterGroupType
818
+ * @property {string} name - The parameter group name
819
+ * @property {number} [parameterGroupId] - Parameter group ID
820
+ * @property {Array<(ParameterType|null|undefined)>} [parameters] - List of parameters
821
+ * @property {number} productId - Product ID associated with this parameter group
822
+ */
823
+ /**
824
+ * Type containing parameter information
825
+ * @typedef {Object} ParameterType
826
+ * @property {string} [description] - Parameter description
827
+ * @property {string} [facetId] - The ID of the associated facet
828
+ * @property {string} [identifier] - The internal identifier of the parameter. This value is the same for all languages and does not change if the parameter name changes.
829
+ * @property {string} [label] - Parameter label
830
+ * @property {string} [name] - Parameter name
831
+ * @property {number} parameterGroupId - ID of the associated parameter group
832
+ * @property {number} parameterId - Parameter ID
833
+ * @property {boolean} show - Whether this parameter should be shown within the product specifications
834
+ * @property {boolean} showFilter - Whether this parameter should be shown within filter options
835
+ * @property {string} [type] - The parameter type
836
+ * @property {string} [value] - Parameter value
837
+ */
838
+ /**
839
+ * @typedef {Object} PaymentDetailsType
840
+ * @property {string} displayName
841
+ * @property {number} id
842
+ * @property {boolean} isPaid
843
+ * @property {string} name
844
+ * @property {DateTime} [paymentDate]
845
+ * @property {number} paymentFee
846
+ * @property {number} paymentId
847
+ * @property {string} [paymentOption]
848
+ * @property {DateTime} reservationDate
849
+ * @property {string} [reservationNumber]
850
+ * @property {number} shippingFee
851
+ * @property {number} total
852
+ * @property {string} transactionId
853
+ */
854
+ /**
855
+ * Type containing payment option information
856
+ * @typedef {Object} PaymentOptionType
857
+ * @property {string} [displayName] - Display name
858
+ * @property {Decimal} feeExVat - Fee excl. VAT
859
+ * @property {string} [feeExVatFormatted] - Fee excl. VAT, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
860
+ * @property {Decimal} feeIncVat - Fee incl. VAT
861
+ * @property {string} [feeIncVatFormatted] - Fee incl. VAT, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
862
+ * @property {number} id - Payment option ID
863
+ * @property {boolean} isDefault - Whether this payment option is the default selection
864
+ * @property {boolean} isSelected - Whether this option is the one selected
865
+ * @property {string} [logo] - Shipping option logo
866
+ * @property {string} [name] - Name
867
+ * @property {boolean} newCheckoutSession - Whether it is a new checkout session
868
+ * @property {string} [paymentData] - Payment option data
869
+ * @property {PaymentType} [paymentType] - Payment type
870
+ */
871
+ /**
872
+ * Payment types
873
+ * @typedef {("AVARDA"|"KLARNA"|"STANDARD"|"SVEA"|"WALLEY")} PaymentType
874
+ */
875
+ /**
876
+ * @typedef {Object} PlaceOrderResponseType
877
+ * @property {string} [orderId]
878
+ * @property {string} [redirectUrl]
879
+ * @property {string} [status]
880
+ */
881
+ /**
882
+ * Price range filter
883
+ * @typedef {Object} PriceFilterInputType
884
+ * @property {number} [highest] - The highest price you want to include
885
+ * @property {number} [lowest] - The lowest price you want to include
886
+ */
887
+ /**
888
+ * Price range filter
889
+ * @typedef {Object} PriceFilterType
890
+ * @property {number} highest - The highest price found in the results
891
+ * @property {number} lowest - The lowest price found in the results
892
+ */
893
+ /**
894
+ * Type containing all information about a product price log item
895
+ * @typedef {Object} PriceLogItemType
896
+ * @property {string} date - Date of the price change
897
+ * @property {Decimal} discountExVat - Discount amount excluding VAT
898
+ * @property {string} [discountExVatFormatted] - Discount (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
899
+ * @property {Decimal} discountIncVat - Discount amount including VAT
900
+ * @property {string} [discountIncVatFormatted] - Discount (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
901
+ * @property {number} discountPercentage - Discount percentage
902
+ * @property {boolean} isDiscounted - Whether the price is discounted or not
903
+ * @property {boolean} isLowest - True if this log items has the lowest price for the last 30 days
904
+ * @property {Decimal} regularPriceExVat - The regular price excluding VAT
905
+ * @property {string} [regularPriceExVatFormatted] - Regular price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
906
+ * @property {Decimal} regularPriceIncVat - The regular price including VAT
907
+ * @property {string} [regularPriceIncVatFormatted] - Regular price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
908
+ * @property {Decimal} sellingPriceExVat - The selling price excluding VAT
909
+ * @property {string} [sellingPriceExVatFormatted] - Selling price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
910
+ * @property {Decimal} sellingPriceIncVat - The selling price including VAT
911
+ * @property {string} [sellingPriceIncVatFormatted] - Selling price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
912
+ * @property {Decimal} vat - VAT amount
913
+ * @property {string} [vatFormatted] - VAT amount, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
914
+ */
915
+ /**
916
+ * Type containing price information
917
+ * @typedef {Object} PriceType
918
+ * @property {Decimal} discountExVat - Discount amount excluding VAT
919
+ * @property {string} [discountExVatFormatted] - Discount (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
920
+ * @property {Decimal} discountIncVat - Discount amount including VAT
921
+ * @property {string} [discountIncVatFormatted] - Discount (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
922
+ * @property {number} discountPercentage - Discount percentage
923
+ * @property {boolean} isDiscounted - Whether the price is discounted or not
924
+ * @property {Decimal} regularPriceExVat - The regular price excluding VAT
925
+ * @property {string} [regularPriceExVatFormatted] - Regular price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
926
+ * @property {Decimal} regularPriceIncVat - The regular price including VAT
927
+ * @property {string} [regularPriceIncVatFormatted] - Regular price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
928
+ * @property {Decimal} sellingPriceExVat - The selling price excluding VAT
929
+ * @property {string} [sellingPriceExVatFormatted] - Selling price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
930
+ * @property {Decimal} sellingPriceIncVat - The selling price including VAT
931
+ * @property {string} [sellingPriceIncVatFormatted] - Selling price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
932
+ * @property {Decimal} vat - VAT amount
933
+ * @property {string} [vatFormatted] - VAT amount, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
934
+ */
935
+ /**
936
+ * Type containing all information about a product image
937
+ * @typedef {Object} ProductImageType
938
+ * @property {string} fileName - The file name of the product image.
939
+ * @property {Array<(string|null|undefined)>} [tags] - Custom tags associated with the product image.
940
+ */
941
+ /**
942
+ * Type containing meta data for the package selection that a cart item was added from
943
+ * @typedef {Object} ProductPackageCartItemType
944
+ * @property {number} groupId - The group id
945
+ * @property {number} optionId - The option id
946
+ * @property {number} packageId - The package id
947
+ * @property {string} packageName - The package name
948
+ */
949
+ /**
950
+ * Type containing an option selection for a product package group
951
+ * @typedef {Object} ProductPackageSelectionType
952
+ * @property {number} groupId - The group id that the selection is made in
953
+ * @property {number} optionId - The selected option id
954
+ * @property {number} skuId - The selected SKU
955
+ */
956
+ /**
957
+ * Type containing type specific information for a product of the type 'package'
958
+ * @typedef {Object} ProductPackageType
959
+ * @property {Array<(GroupType|null|undefined)>} [groups] - Groups in this package
960
+ */
961
+ /**
962
+ * Product relation type
963
+ * @typedef {("ACCESSORIES"|"RELATED"|"SIMILAR")} ProductRelation
964
+ */
965
+ /**
966
+ * The results of the reviews query.
967
+ * @typedef {Object} ProductReviewResultType
968
+ * @property {number} averageRating - The average rating for this product
969
+ * @property {Long} count - The total count of results for the query
970
+ * @property {Array<(ProductReviewType|null|undefined)>} [reviews] - Results returned by the query
971
+ */
972
+ /**
973
+ * Type containing all information about a product review
974
+ * @typedef {Object} ProductReviewType
975
+ * @property {string} author - Author of the review
976
+ * @property {string} comment - The product review comment
977
+ * @property {number} rating - The product rating (1-5)
978
+ * @property {DateTime} reviewDate - The date and time for when the review was made
979
+ */
980
+ /**
981
+ * Product info
982
+ * @typedef {Object} ProductTextsType
983
+ * @property {string} [text1] - Main product info
984
+ * @property {string} [text2] - Secondary product info
985
+ * @property {string} [text3] - Tertiary product info
986
+ */
987
+ /**
988
+ * Type containing all information about a product
989
+ * @typedef {Object} ProductType
990
+ * @property {string} alias - Alias for the product
991
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the product - DEPRECATED: Use AlternativeUrls instead.
992
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the product
993
+ * @property {string} [articleNumber] - The product article number
994
+ * @property {BrandType} [brand] - Product brand information
995
+ * @property {Array<(BreadcrumbType|null|undefined)>} [breadcrumbs] - Breadcrumbs
996
+ * @property {string} [canonicalUrl] - The full path to the product
997
+ * @property {Array<(CategoryType|null|undefined)>} [categories] - Product category information
998
+ * @property {number} categoryId - The primary category ID
999
+ * @property {VariantType} [currentProductVariant] - The current variant selection
1000
+ * @property {DimensionsType} [dimensions] - The dimensions of the Product. Note that this can also be set on SKU level
1001
+ * @property {Array<(CampaignRuleType|null|undefined)>} [discountCampaigns] - Product discount campaigns
1002
+ * @property {DiscountType} [discountType] - Type of discount price: None, Sale or Campaign
1003
+ * @property {string} [firstAvailableOn] - The date on which the product was first available (yyyy-mm-dd)
1004
+ * @property {string} [freightClass] - The Freightclass set for this product
1005
+ * @property {Array<(string|null|undefined)>} [images] - List of product images - DEPRECATED: Use ProductType.ProductImages instead.
1006
+ * @property {LowestPriceType} [lowestPrice] - Lowest price and comparison price according to EU price laws
1007
+ * @property {MetadataType} [meta] - Product metadata
1008
+ * @property {string} [name] - The product name
1009
+ * @property {Array<(ParameterGroupType|null|undefined)>} [parameterGroups] - Product parameter groups
1010
+ * @property {Array<(PriceLogItemType|null|undefined)>} [priceLog] - Price log with the prices from the last 30 days
1011
+ * @property {CategoryType} [primaryCategory] - Primary category for this product
1012
+ * @property {number} productId - Product ID
1013
+ * @property {Array<(ProductImageType|null|undefined)>} [productImages] - List of product images and their related properties
1014
+ * @property {ProductPackageType} [productPackage] - Package specific information for this product
1015
+ * @property {RatingType} [rating] - Product rating
1016
+ * @property {Array<(SkuType|null|undefined)>} [skus] - Product SKUs
1017
+ * @property {number} supplierId - The Supplier Id
1018
+ * @property {ProductTextsType} [texts] - Product text info
1019
+ * @property {StockType} [totalStock] - Product stock information
1020
+ * @property {string} [type] - The product type. Either 'product' or 'package'
1021
+ * @property {PriceType} [unitPrice] - Product price information
1022
+ * @property {Array<(VariantDimensionType|null|undefined)>} [variantDimensions] - Variant dimensions
1023
+ * @property {VariantGroupType} [variantGroup] - Product variant group
1024
+ * @property {number} weight - Weight in grams (g). Note that this can also be set on SKU level
1025
+ */
1026
+ /**
1027
+ * The results of the products-query.
1028
+ * @typedef {Object} ProductsResultType
1029
+ * @property {Long} count - The total count of results for the query
1030
+ * @property {FilterCollectionType} [filters] - The filters available for this query
1031
+ * @property {Array<(ProductType|null|undefined)>} [products] - Results returned by the query
1032
+ */
1033
+ /**
1034
+ * Gets all available channels
1035
+ * @typedef {Object} Query
1036
+ * @property {Array<(BrandListType|null|undefined)>} [brands] - Get all brands.
1037
+ * @property {Array<(CategoryType|null|undefined)>} [categories] - Get all categories.
1038
+ * @property {CategoryType} [category] - Gets a category with the specified ID.
1039
+ * @property {ChannelType} [channel] - Gets a channel with the specified ID.
1040
+ * @property {Array<(ChannelType|null|undefined)>} [channels]
1041
+ * @property {CheckoutDataType} [checkout] - Gets checkout data with a html snippet, checkout order data for the specified order and the User. If the order was recently completed, the html snippet will contain the "Thank you"-content.
1042
+ * @property {Array<(PageWidgetPageType|null|undefined)>} [cmsPages] - Gets all CMS pages.
1043
+ * @property {CartType} [getCart] - Get the cart
1044
+ * @property {string} [getCheckout] - Gets html snippet for the specified external order. If the order was recently completed, the html snippet will contain the "Thank you"-content. - DEPRECATED: Use Checkout instead
1045
+ * @property {CheckoutAndOrderType} [getCheckoutAndOrder] - Gets html snippet and checkout order data for the specified external order. If the order was recently completed, the html snippet will contain the "Thank you"-content. - DEPRECATED: Use Checkout instead
1046
+ * @property {MenuType} [getMenuAtLocation] - Get a menu
1047
+ * @property {OrderType} [getOrder] - Get a specific order with details
1048
+ * @property {OrderType} [getOrderPublic] - Get a specific order with details via public id
1049
+ * @property {Array<(OrderType|null|undefined)>} [getOrders] - Get orders for the current user
1050
+ * @property {UserType} [getUser] - Get the current user
1051
+ * @property {PageInfoType} [listPageInfo] - Gets information about the specified list page.
1052
+ * @property {ProductType} [product] - Gets a product with the specified ID.
1053
+ * @property {ProductsResultType} [products] - Gets all products according to the values provided.
1054
+ * @property {Array<(RelatedProductType|null|undefined)>} [relatedProducts] - Gets related products for the specified alias.
1055
+ * @property {ProductReviewResultType} [reviews] - Gets all products reviews to the values provided.
1056
+ * @property {UrlHistoryType} [urlHistory] - Gets an alternate url for a given url.
1057
+ * @property {ValidateOrderCreationResponseType} [validateOrderCreation]
1058
+ * @property {PageWidgetCollectionType} [widgetArea] - Gets the page area and widgets from the specifed family.
1059
+ */
1060
+ /**
1061
+ * Type containing product rating information
1062
+ * @typedef {Object} RatingType
1063
+ * @property {Decimal} score - Rating score
1064
+ * @property {number} voteCount - Vote count
1065
+ */
1066
+ /**
1067
+ * @typedef {Object} RefundType
1068
+ * @property {string} [articleNumber]
1069
+ * @property {DateTime} createdAt
1070
+ * @property {number} id
1071
+ * @property {number} itemId
1072
+ * @property {string} [reason]
1073
+ * @property {number} [reasonCode]
1074
+ * @property {string} [refundType]
1075
+ * @property {boolean} toBalance
1076
+ * @property {number} total
1077
+ * @property {number} vat
1078
+ */
1079
+ /**
1080
+ * Type containing a subset of product information for related products
1081
+ * @typedef {Object} RelatedProductType
1082
+ * @property {string} alias - Product alias
1083
+ * @property {BrandType} [brand] - Product brand information
1084
+ * @property {string} [canonicalUrl] - Full path to the product
1085
+ * @property {Array<(CampaignRuleType|null|undefined)>} [discountCampaigns] - Product campaigns
1086
+ * @property {Array<(string|null|undefined)>} [images] - List of product images - DEPRECATED: Use RelatedProductType.ProductImages instead.
1087
+ * @property {string} [name] - Product name
1088
+ * @property {Array<(ParameterGroupType|null|undefined)>} [parameterGroups] - Product parameter groups. The availability of data in this field needs to be configured.
1089
+ * @property {CategoryType} [primaryCategory] - Primary category for this product
1090
+ * @property {string} [primaryImage] - Product primary image
1091
+ * @property {Array<(ProductImageType|null|undefined)>} [productImages] - List of product images and their related properties
1092
+ * @property {ProductRelation} [relation] - Relation type - DEPRECATED: Use RelatedProductType.RelationType instead.
1093
+ * @property {string} relationType - Relation type
1094
+ * @property {string} [secondaryImage] - Product secondary image
1095
+ * @property {Array<(SkuType|null|undefined)>} [skus] - Product SKUs
1096
+ * @property {PriceType} [unitPrice] - Product price
1097
+ */
1098
+ /**
1099
+ * @typedef {Object} ShippingDetailType
1100
+ * @property {number} id
1101
+ * @property {string} name
1102
+ * @property {string} [parcelNumber]
1103
+ * @property {DateTime} [shippingDate]
1104
+ * @property {number} shippingId
1105
+ * @property {string} [trackingLink]
1106
+ */
1107
+ /**
1108
+ * Type containing shipping option information
1109
+ * @typedef {Object} ShippingOptionType
1110
+ * @property {Decimal} amountLeftToFreeShipping - Amount left to recieve free shipping
1111
+ * @property {string} [amountLeftToFreeShippingFormatted] - Amount left to recieve free shipping formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
1112
+ * @property {string} [displayName] - Display name
1113
+ * @property {string} [externalId] - External ID
1114
+ * @property {Decimal} feeExVat - Fee excl. VAT
1115
+ * @property {string} [feeExVatFormatted] - Fee excl. VAT, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
1116
+ * @property {Decimal} feeIncVat - Fee incl. VAT
1117
+ * @property {string} [feeIncVatFormatted] - Fee incl. VAT, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
1118
+ * @property {number} id - Shipping option ID
1119
+ * @property {boolean} isDefault - Whether this shipping option is the default selection
1120
+ * @property {boolean} isSelected - Whether this option is the one selected
1121
+ * @property {string} [logo] - Shipping option logo
1122
+ * @property {string} [name] - Name
1123
+ * @property {string} [shippingData] - Shipping data
1124
+ * @property {Array<(ShippingOptionType|null|undefined)>} [subOptions] - Sub-options
1125
+ */
1126
+ /**
1127
+ * Type containing all information about a product SKU
1128
+ * @typedef {Object} SkuType
1129
+ * @property {string} articleNumber - The article number of the SKU
1130
+ * @property {DimensionsType} [dimensions] - The dimensions of the SKU
1131
+ * @property {string} [externalId] - External ID of the SKU
1132
+ * @property {string} [gtin] - SKU GTIN
1133
+ * @property {DateTime} [incoming] - Incoming date
1134
+ * @property {string} [name] - SKU name
1135
+ * @property {number} productId - The associated product ID
1136
+ * @property {string} [shelf] - Shelf
1137
+ * @property {number} skuId - ID of the SKU
1138
+ * @property {StockType} [stock] - Stock information
1139
+ * @property {number} weight - Weight in grams (g)
1140
+ */
1141
+ /**
1142
+ * Sort types
1143
+ * @typedef {("ALPHABETICAL"|"ALPHABETICAL_DESC"|"AVAILABLE_STOCK"|"AVAILABLE_STOCK_DESC"|"BRAND"|"CUSTOM_1"|"CUSTOM_2"|"CUSTOM_3"|"CUSTOM_4"|"CUSTOM_5"|"FACET_ORDER"|"LATEST"|"MOST_SOLD"|"NONE"|"PRICE"|"PRICE_DESC"|"RELEVANCE"|"TOTAL_STOCK"|"TOTAL_STOCK_DESC"|"VOTES")} SortType
1144
+ */
1145
+ /**
1146
+ * Type containing information about SKU stock
1147
+ * @typedef {Object} StockType
1148
+ * @property {number} inStock - The units available at this moment
1149
+ * @property {DateTime} [incoming] - Incoming date - DEPRECATED: Use SkuType.Incoming or VariantType.Incoming instead
1150
+ * @property {number} oversellable - Over-sellable units
1151
+ * @property {string} [shelf] - Shelf - DEPRECATED: Use SkuType.Shelf or VariantType.Shelf instead
1152
+ * @property {number} [static] - Amount of units that are always available
1153
+ * @property {number} totalStock - The total units available
1154
+ */
1155
+ /**
1156
+ * @typedef {Object} UrlHistoryType
1157
+ * @property {string} newUrl
1158
+ * @property {string} oldUrl
1159
+ */
1160
+ /**
1161
+ * @typedef {Object} UserBalanceType
1162
+ * @property {Decimal} amount
1163
+ * @property {string} [amountFormatted] - User balance amount. Formatted as a currency string.
1164
+ * @property {string} currency
1165
+ */
1166
+ /**
1167
+ * @typedef {Object} UserInputType
1168
+ * @property {AddressInputType} [address]
1169
+ * @property {CustomerType} [customerType]
1170
+ * @property {Gender} [gender]
1171
+ * @property {string} [metaData] - Free-text field to store any data related to the customer.
1172
+ * @property {boolean} [newsletter]
1173
+ * @property {string} [personalId]
1174
+ */
1175
+ /**
1176
+ * @typedef {Object} UserType
1177
+ * @property {AddressType} [address]
1178
+ * @property {Decimal} balance - Account balance - DEPRECATED: Use Balances instead
1179
+ * @property {string} [balanceFormatted] - Account balance. Formatted as a currency string. - DEPRECATED: Use Balances instead
1180
+ * @property {Array<(UserBalanceType|null|undefined)>} [balances] - User balance per currency
1181
+ * @property {CustomerType} [customerType]
1182
+ * @property {string} email
1183
+ * @property {Gender} [gender]
1184
+ * @property {number} id
1185
+ * @property {number} memberId
1186
+ * @property {string} memberType
1187
+ * @property {string} [metaData] - Free-text field that can contain any additional metadata related to the customer.
1188
+ * @property {boolean} [newsletter]
1189
+ * @property {string} [personalId]
1190
+ */
1191
+ /**
1192
+ * @typedef {Object} ValidateOrderCreationResponseType
1193
+ * @property {boolean} isValid
1194
+ * @property {string} [memberType]
1195
+ * @property {string} [message]
1196
+ */
1197
+ /**
1198
+ * Type containing variant attribute information
1199
+ * @typedef {Object} VariantAttributeType
1200
+ * @property {string} key - Attribute key
1201
+ * @property {string} value - Attribute value
1202
+ */
1203
+ /**
1204
+ * Type containing variant dimension information
1205
+ * @typedef {Object} VariantDimensionType
1206
+ * @property {Array<(VariantAttributeType|null|undefined)>} [attributes] - Dimension attributes
1207
+ * @property {string} dimension - The dimension name
1208
+ * @property {Array<(VariantValueType|null|undefined)>} [group] - Group values
1209
+ * @property {string} [label] - Dimension label
1210
+ * @property {number} level - The level of this variant dimension
1211
+ * @property {string} type - Dimension type. e.g. 'product' if it leads to a different product, otherwise 'selection'
1212
+ * @property {string} [value] - Dimension value
1213
+ */
1214
+ /**
1215
+ * Type containing variant group information
1216
+ * @typedef {Object} VariantGroupType
1217
+ * @property {number} activeProducts - The amount of active products in this variant group
1218
+ * @property {boolean} collapseInLists - If true, only the main product will show up in product lists
1219
+ * @property {number} mainProductId - ID of the main product in this group
1220
+ * @property {string} name - Variant group name
1221
+ * @property {number} variantGroupId - Variant group ID
1222
+ * @property {Array<(VariantType|null|undefined)>} [variants] - Group variants
1223
+ */
1224
+ /**
1225
+ * Type containing variant information
1226
+ * @typedef {Object} VariantType
1227
+ * @property {string} [alias] - Alias for variant selection. e.g. 'product-4'
1228
+ * @property {Array<(VariantAttributeType|null|undefined)>} [attributes] - Variant attributes
1229
+ * @property {string} [canonicalUrl] - Canonical URL. Only available for the 'product'-level
1230
+ * @property {string} dimension - Variant dimension
1231
+ * @property {DateTime} [incoming] - Incoming date
1232
+ * @property {string} [label] - Variant label
1233
+ * @property {number} level - Level of this variant. Lower value is a more accurate selection
1234
+ * @property {string} [name] - Variant name
1235
+ * @property {string} [primaryImage] - The primary image used for the product. Only available for the 'product'-level
1236
+ * @property {number} productId - Product ID associated with this variant
1237
+ * @property {string} [shelf] - Shelf
1238
+ * @property {number} [skuId] - SKU ID associated with this variant
1239
+ * @property {StockType} [stock] - Stock information for variant
1240
+ * @property {string} type - Variant type. In order of accuracy 'sku', 'product', 'selection'
1241
+ * @property {string} [value] - Variant value
1242
+ * @property {Array<(VariantType|null|undefined)>} [variants] - List of variants for this variant
1243
+ */
1244
+ /**
1245
+ * Type containing variant value information
1246
+ * @typedef {Object} VariantValueType
1247
+ * @property {string} label - Label
1248
+ * @property {string} value - Value
1249
+ */
1250
+ /**
1251
+ * Type containing VAT group information
1252
+ * @typedef {Object} VatGroupType
1253
+ * @property {Decimal} amount - VAT amount
1254
+ * @property {number} rate - VAT rate
1255
+ */
1256
+
1257
+ export { AuthClientConnectionModes, FilterSystemEntityTypes, GeinsCheckoutStatus, GeinsCustomerType, GeinsDiscountType, GeinsEventType, GeinsFilterMode, GeinsGender, GeinsPaymentType, GeinsProductRelation, GeinsSortType, ProductFilterModeType, ProductListSortType };