@behio/storefront-sdk 0.1.11 → 0.2.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.
package/dist/react.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as _tanstack_react_query from '@tanstack/react-query';
3
3
  import { QueryClient } from '@tanstack/react-query';
4
- import { BehioStorefront, ProductsQuery, PaginatedResponse, ProductListItem, ProductDetail, Category, CategoryDetail, ProductLabel, FilterField, Cart, CustomerProfile, RegisterInput, CustomerAddress, OrderListItem, OrderDetail, CheckoutInput, PageDetail, Page, ShopInfo, ShopSeo, Bundle, CrossSellItem, ActivePromotion, GiftCardBalance } from './index.js';
5
- export { AddToCartInput, AuthTokens, BehioApiError, BundleItem, CartDiscount, CartItem, CheckoutAddress, FulfillmentStatus, LoginInput, MessageResponse, OrderItem, OrderStatus, PaymentStatus, ProductPrice, ProductVariant } from './index.js';
4
+ import { BehioStorefront, ProductsQuery, PaginatedResponse, ProductListItem, ProductDetail, Category, CategoryDetail, ProductLabel, FilterField, Cart, CustomerProfile, RegisterInput, CustomerAddress, OrderListItem, OrderDetail, CheckoutInput, PageDetail, Page, ShopInfo, ShopSeo, Bundle, CrossSellItem, ActivePromotion, GiftCardBalance, WishlistItem, ProductReviewsResponse, SubmitReviewInput, ReturnRequest, SubmitReturnInput, CookieConsent, CookieConsentInput, QuoteRequest, SubmitQuoteInput } from './index.js';
5
+ export { AddToCartInput, AuthTokens, BehioApiError, BundleItem, CartDiscount, CartItem, CheckoutAddress, FulfillmentStatus, LoginInput, MessageResponse, OrderItem, OrderStatus, PaymentStatus, ProductPrice, ProductReview, ProductVariant } from './index.js';
6
6
  import * as _tanstack_query_core from '@tanstack/query-core';
7
7
 
8
8
  interface StorageAdapter {
@@ -334,6 +334,456 @@ declare function useGiftCardBalance(code: string | undefined, options?: {
334
334
  enabled?: boolean;
335
335
  }): _tanstack_react_query.UseQueryResult<GiftCardBalance, Error>;
336
336
 
337
+ declare function useWishlist(options?: {
338
+ enabled?: boolean;
339
+ }): {
340
+ add: _tanstack_react_query.UseMutateAsyncFunction<{
341
+ success: boolean;
342
+ }, Error, string, unknown>;
343
+ remove: _tanstack_react_query.UseMutateAsyncFunction<{
344
+ success: boolean;
345
+ }, Error, string, unknown>;
346
+ isAdding: boolean;
347
+ isRemoving: boolean;
348
+ data: {
349
+ items: WishlistItem[];
350
+ };
351
+ error: Error;
352
+ isError: true;
353
+ isPending: false;
354
+ isLoading: false;
355
+ isLoadingError: false;
356
+ isRefetchError: true;
357
+ isSuccess: false;
358
+ isPlaceholderData: false;
359
+ status: "error";
360
+ dataUpdatedAt: number;
361
+ errorUpdatedAt: number;
362
+ failureCount: number;
363
+ failureReason: Error | null;
364
+ errorUpdateCount: number;
365
+ isFetched: boolean;
366
+ isFetchedAfterMount: boolean;
367
+ isFetching: boolean;
368
+ isInitialLoading: boolean;
369
+ isPaused: boolean;
370
+ isRefetching: boolean;
371
+ isStale: boolean;
372
+ isEnabled: boolean;
373
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
374
+ items: WishlistItem[];
375
+ }, Error>>;
376
+ fetchStatus: _tanstack_query_core.FetchStatus;
377
+ promise: Promise<{
378
+ items: WishlistItem[];
379
+ }>;
380
+ } | {
381
+ add: _tanstack_react_query.UseMutateAsyncFunction<{
382
+ success: boolean;
383
+ }, Error, string, unknown>;
384
+ remove: _tanstack_react_query.UseMutateAsyncFunction<{
385
+ success: boolean;
386
+ }, Error, string, unknown>;
387
+ isAdding: boolean;
388
+ isRemoving: boolean;
389
+ data: {
390
+ items: WishlistItem[];
391
+ };
392
+ error: null;
393
+ isError: false;
394
+ isPending: false;
395
+ isLoading: false;
396
+ isLoadingError: false;
397
+ isRefetchError: false;
398
+ isSuccess: true;
399
+ isPlaceholderData: false;
400
+ status: "success";
401
+ dataUpdatedAt: number;
402
+ errorUpdatedAt: number;
403
+ failureCount: number;
404
+ failureReason: Error | null;
405
+ errorUpdateCount: number;
406
+ isFetched: boolean;
407
+ isFetchedAfterMount: boolean;
408
+ isFetching: boolean;
409
+ isInitialLoading: boolean;
410
+ isPaused: boolean;
411
+ isRefetching: boolean;
412
+ isStale: boolean;
413
+ isEnabled: boolean;
414
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
415
+ items: WishlistItem[];
416
+ }, Error>>;
417
+ fetchStatus: _tanstack_query_core.FetchStatus;
418
+ promise: Promise<{
419
+ items: WishlistItem[];
420
+ }>;
421
+ } | {
422
+ add: _tanstack_react_query.UseMutateAsyncFunction<{
423
+ success: boolean;
424
+ }, Error, string, unknown>;
425
+ remove: _tanstack_react_query.UseMutateAsyncFunction<{
426
+ success: boolean;
427
+ }, Error, string, unknown>;
428
+ isAdding: boolean;
429
+ isRemoving: boolean;
430
+ data: undefined;
431
+ error: Error;
432
+ isError: true;
433
+ isPending: false;
434
+ isLoading: false;
435
+ isLoadingError: true;
436
+ isRefetchError: false;
437
+ isSuccess: false;
438
+ isPlaceholderData: false;
439
+ status: "error";
440
+ dataUpdatedAt: number;
441
+ errorUpdatedAt: number;
442
+ failureCount: number;
443
+ failureReason: Error | null;
444
+ errorUpdateCount: number;
445
+ isFetched: boolean;
446
+ isFetchedAfterMount: boolean;
447
+ isFetching: boolean;
448
+ isInitialLoading: boolean;
449
+ isPaused: boolean;
450
+ isRefetching: boolean;
451
+ isStale: boolean;
452
+ isEnabled: boolean;
453
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
454
+ items: WishlistItem[];
455
+ }, Error>>;
456
+ fetchStatus: _tanstack_query_core.FetchStatus;
457
+ promise: Promise<{
458
+ items: WishlistItem[];
459
+ }>;
460
+ } | {
461
+ add: _tanstack_react_query.UseMutateAsyncFunction<{
462
+ success: boolean;
463
+ }, Error, string, unknown>;
464
+ remove: _tanstack_react_query.UseMutateAsyncFunction<{
465
+ success: boolean;
466
+ }, Error, string, unknown>;
467
+ isAdding: boolean;
468
+ isRemoving: boolean;
469
+ data: undefined;
470
+ error: null;
471
+ isError: false;
472
+ isPending: true;
473
+ isLoading: true;
474
+ isLoadingError: false;
475
+ isRefetchError: false;
476
+ isSuccess: false;
477
+ isPlaceholderData: false;
478
+ status: "pending";
479
+ dataUpdatedAt: number;
480
+ errorUpdatedAt: number;
481
+ failureCount: number;
482
+ failureReason: Error | null;
483
+ errorUpdateCount: number;
484
+ isFetched: boolean;
485
+ isFetchedAfterMount: boolean;
486
+ isFetching: boolean;
487
+ isInitialLoading: boolean;
488
+ isPaused: boolean;
489
+ isRefetching: boolean;
490
+ isStale: boolean;
491
+ isEnabled: boolean;
492
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
493
+ items: WishlistItem[];
494
+ }, Error>>;
495
+ fetchStatus: _tanstack_query_core.FetchStatus;
496
+ promise: Promise<{
497
+ items: WishlistItem[];
498
+ }>;
499
+ } | {
500
+ add: _tanstack_react_query.UseMutateAsyncFunction<{
501
+ success: boolean;
502
+ }, Error, string, unknown>;
503
+ remove: _tanstack_react_query.UseMutateAsyncFunction<{
504
+ success: boolean;
505
+ }, Error, string, unknown>;
506
+ isAdding: boolean;
507
+ isRemoving: boolean;
508
+ data: undefined;
509
+ error: null;
510
+ isError: false;
511
+ isPending: true;
512
+ isLoadingError: false;
513
+ isRefetchError: false;
514
+ isSuccess: false;
515
+ isPlaceholderData: false;
516
+ status: "pending";
517
+ dataUpdatedAt: number;
518
+ errorUpdatedAt: number;
519
+ failureCount: number;
520
+ failureReason: Error | null;
521
+ errorUpdateCount: number;
522
+ isFetched: boolean;
523
+ isFetchedAfterMount: boolean;
524
+ isFetching: boolean;
525
+ isLoading: boolean;
526
+ isInitialLoading: boolean;
527
+ isPaused: boolean;
528
+ isRefetching: boolean;
529
+ isStale: boolean;
530
+ isEnabled: boolean;
531
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
532
+ items: WishlistItem[];
533
+ }, Error>>;
534
+ fetchStatus: _tanstack_query_core.FetchStatus;
535
+ promise: Promise<{
536
+ items: WishlistItem[];
537
+ }>;
538
+ } | {
539
+ add: _tanstack_react_query.UseMutateAsyncFunction<{
540
+ success: boolean;
541
+ }, Error, string, unknown>;
542
+ remove: _tanstack_react_query.UseMutateAsyncFunction<{
543
+ success: boolean;
544
+ }, Error, string, unknown>;
545
+ isAdding: boolean;
546
+ isRemoving: boolean;
547
+ data: {
548
+ items: WishlistItem[];
549
+ };
550
+ isError: false;
551
+ error: null;
552
+ isPending: false;
553
+ isLoading: false;
554
+ isLoadingError: false;
555
+ isRefetchError: false;
556
+ isSuccess: true;
557
+ isPlaceholderData: true;
558
+ status: "success";
559
+ dataUpdatedAt: number;
560
+ errorUpdatedAt: number;
561
+ failureCount: number;
562
+ failureReason: Error | null;
563
+ errorUpdateCount: number;
564
+ isFetched: boolean;
565
+ isFetchedAfterMount: boolean;
566
+ isFetching: boolean;
567
+ isInitialLoading: boolean;
568
+ isPaused: boolean;
569
+ isRefetching: boolean;
570
+ isStale: boolean;
571
+ isEnabled: boolean;
572
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
573
+ items: WishlistItem[];
574
+ }, Error>>;
575
+ fetchStatus: _tanstack_query_core.FetchStatus;
576
+ promise: Promise<{
577
+ items: WishlistItem[];
578
+ }>;
579
+ };
580
+ declare function useIsInWishlist(productId: string | undefined): _tanstack_react_query.UseQueryResult<{
581
+ inWishlist: boolean;
582
+ }, Error>;
583
+
584
+ declare function useProductReviews(productId: string | undefined, options?: {
585
+ page?: number;
586
+ limit?: number;
587
+ enabled?: boolean;
588
+ }): _tanstack_react_query.UseQueryResult<ProductReviewsResponse, Error>;
589
+ declare function useSubmitReview(): _tanstack_react_query.UseMutationResult<{
590
+ id: string;
591
+ }, Error, SubmitReviewInput, unknown>;
592
+
593
+ declare function useSubmitReturn(): _tanstack_react_query.UseMutationResult<ReturnRequest, Error, SubmitReturnInput, unknown>;
594
+ declare function useReturnStatus(returnId: string | undefined, email: string | undefined): _tanstack_react_query.UseQueryResult<ReturnRequest, Error>;
595
+
596
+ declare function useCookieConsent(visitorId: string | undefined): {
597
+ record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
598
+ revoke: _tanstack_react_query.UseMutateAsyncFunction<{
599
+ success: boolean;
600
+ }, Error, void, unknown>;
601
+ data: CookieConsent | null;
602
+ error: Error;
603
+ isError: true;
604
+ isPending: false;
605
+ isLoading: false;
606
+ isLoadingError: false;
607
+ isRefetchError: true;
608
+ isSuccess: false;
609
+ isPlaceholderData: false;
610
+ status: "error";
611
+ dataUpdatedAt: number;
612
+ errorUpdatedAt: number;
613
+ failureCount: number;
614
+ failureReason: Error | null;
615
+ errorUpdateCount: number;
616
+ isFetched: boolean;
617
+ isFetchedAfterMount: boolean;
618
+ isFetching: boolean;
619
+ isInitialLoading: boolean;
620
+ isPaused: boolean;
621
+ isRefetching: boolean;
622
+ isStale: boolean;
623
+ isEnabled: boolean;
624
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
625
+ fetchStatus: _tanstack_query_core.FetchStatus;
626
+ promise: Promise<CookieConsent | null>;
627
+ } | {
628
+ record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
629
+ revoke: _tanstack_react_query.UseMutateAsyncFunction<{
630
+ success: boolean;
631
+ }, Error, void, unknown>;
632
+ data: CookieConsent | null;
633
+ error: null;
634
+ isError: false;
635
+ isPending: false;
636
+ isLoading: false;
637
+ isLoadingError: false;
638
+ isRefetchError: false;
639
+ isSuccess: true;
640
+ isPlaceholderData: false;
641
+ status: "success";
642
+ dataUpdatedAt: number;
643
+ errorUpdatedAt: number;
644
+ failureCount: number;
645
+ failureReason: Error | null;
646
+ errorUpdateCount: number;
647
+ isFetched: boolean;
648
+ isFetchedAfterMount: boolean;
649
+ isFetching: boolean;
650
+ isInitialLoading: boolean;
651
+ isPaused: boolean;
652
+ isRefetching: boolean;
653
+ isStale: boolean;
654
+ isEnabled: boolean;
655
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
656
+ fetchStatus: _tanstack_query_core.FetchStatus;
657
+ promise: Promise<CookieConsent | null>;
658
+ } | {
659
+ record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
660
+ revoke: _tanstack_react_query.UseMutateAsyncFunction<{
661
+ success: boolean;
662
+ }, Error, void, unknown>;
663
+ data: undefined;
664
+ error: Error;
665
+ isError: true;
666
+ isPending: false;
667
+ isLoading: false;
668
+ isLoadingError: true;
669
+ isRefetchError: false;
670
+ isSuccess: false;
671
+ isPlaceholderData: false;
672
+ status: "error";
673
+ dataUpdatedAt: number;
674
+ errorUpdatedAt: number;
675
+ failureCount: number;
676
+ failureReason: Error | null;
677
+ errorUpdateCount: number;
678
+ isFetched: boolean;
679
+ isFetchedAfterMount: boolean;
680
+ isFetching: boolean;
681
+ isInitialLoading: boolean;
682
+ isPaused: boolean;
683
+ isRefetching: boolean;
684
+ isStale: boolean;
685
+ isEnabled: boolean;
686
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
687
+ fetchStatus: _tanstack_query_core.FetchStatus;
688
+ promise: Promise<CookieConsent | null>;
689
+ } | {
690
+ record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
691
+ revoke: _tanstack_react_query.UseMutateAsyncFunction<{
692
+ success: boolean;
693
+ }, Error, void, unknown>;
694
+ data: undefined;
695
+ error: null;
696
+ isError: false;
697
+ isPending: true;
698
+ isLoading: true;
699
+ isLoadingError: false;
700
+ isRefetchError: false;
701
+ isSuccess: false;
702
+ isPlaceholderData: false;
703
+ status: "pending";
704
+ dataUpdatedAt: number;
705
+ errorUpdatedAt: number;
706
+ failureCount: number;
707
+ failureReason: Error | null;
708
+ errorUpdateCount: number;
709
+ isFetched: boolean;
710
+ isFetchedAfterMount: boolean;
711
+ isFetching: boolean;
712
+ isInitialLoading: boolean;
713
+ isPaused: boolean;
714
+ isRefetching: boolean;
715
+ isStale: boolean;
716
+ isEnabled: boolean;
717
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
718
+ fetchStatus: _tanstack_query_core.FetchStatus;
719
+ promise: Promise<CookieConsent | null>;
720
+ } | {
721
+ record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
722
+ revoke: _tanstack_react_query.UseMutateAsyncFunction<{
723
+ success: boolean;
724
+ }, Error, void, unknown>;
725
+ data: undefined;
726
+ error: null;
727
+ isError: false;
728
+ isPending: true;
729
+ isLoadingError: false;
730
+ isRefetchError: false;
731
+ isSuccess: false;
732
+ isPlaceholderData: false;
733
+ status: "pending";
734
+ dataUpdatedAt: number;
735
+ errorUpdatedAt: number;
736
+ failureCount: number;
737
+ failureReason: Error | null;
738
+ errorUpdateCount: number;
739
+ isFetched: boolean;
740
+ isFetchedAfterMount: boolean;
741
+ isFetching: boolean;
742
+ isLoading: boolean;
743
+ isInitialLoading: boolean;
744
+ isPaused: boolean;
745
+ isRefetching: boolean;
746
+ isStale: boolean;
747
+ isEnabled: boolean;
748
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
749
+ fetchStatus: _tanstack_query_core.FetchStatus;
750
+ promise: Promise<CookieConsent | null>;
751
+ } | {
752
+ record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
753
+ revoke: _tanstack_react_query.UseMutateAsyncFunction<{
754
+ success: boolean;
755
+ }, Error, void, unknown>;
756
+ data: CookieConsent | null;
757
+ isError: false;
758
+ error: null;
759
+ isPending: false;
760
+ isLoading: false;
761
+ isLoadingError: false;
762
+ isRefetchError: false;
763
+ isSuccess: true;
764
+ isPlaceholderData: true;
765
+ status: "success";
766
+ dataUpdatedAt: number;
767
+ errorUpdatedAt: number;
768
+ failureCount: number;
769
+ failureReason: Error | null;
770
+ errorUpdateCount: number;
771
+ isFetched: boolean;
772
+ isFetchedAfterMount: boolean;
773
+ isFetching: boolean;
774
+ isInitialLoading: boolean;
775
+ isPaused: boolean;
776
+ isRefetching: boolean;
777
+ isStale: boolean;
778
+ isEnabled: boolean;
779
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
780
+ fetchStatus: _tanstack_query_core.FetchStatus;
781
+ promise: Promise<CookieConsent | null>;
782
+ };
783
+
784
+ declare function useSubmitQuote(): _tanstack_react_query.UseMutationResult<QuoteRequest, Error, SubmitQuoteInput, unknown>;
785
+ declare function useQuoteStatus(quoteId: string | undefined): _tanstack_react_query.UseQueryResult<QuoteRequest, Error>;
786
+
337
787
  /**
338
788
  * Returns the raw BehioStorefront client instance.
339
789
  *
@@ -352,4 +802,4 @@ declare function useBehioClient(): BehioStorefront;
352
802
  */
353
803
  declare function formatPrice(amount: number, currency: string, locale?: string): string;
354
804
 
355
- export { ActivePromotion, BehioProvider, type BehioProviderProps, Bundle, Cart, Category, CategoryDetail, CheckoutInput, CrossSellItem, CustomerAddress, CustomerProfile, FilterField, GiftCardBalance, OrderDetail, OrderListItem, Page, PageDetail, PaginatedResponse, ProductDetail, ProductLabel, ProductListItem, ProductsQuery, RegisterInput, ShopInfo, ShopSeo, type StorageAdapter, type UseAddressesOptions, type UseCartCountOptions, type UseCartOptions, type UseCategoriesOptions, type UseCategoryOptions, type UseCustomerOptions, type UseFeaturedOptions, type UseFiltersOptions, type UseLabelsOptions, type UseOrderOptions, type UseOrdersOptions, type UsePageOptions, type UsePagesOptions, type UseProductOptions, type UseProductsOptions, type UseSearchOptions, type UseShopInfoOptions, type UseShopSeoOptions, cookieStorage, createMemoryStorage, detectStorage, formatPrice, localStorageAdapter, memoryStorage, useAddresses, useAuth, useBehio, useBehioClient, useBundle, useBundles, useCart, useCartCount, useCategories, useCategory, useCheckout, useCrossSell, useCustomer, useFeatured, useFilters, useGiftCardBalance, useLabels, useOrder, useOrders, usePage, usePages, useProduct, useProductPromotions, useProducts, useSearch, useShopInfo, useShopSeo };
805
+ export { ActivePromotion, BehioProvider, type BehioProviderProps, Bundle, Cart, Category, CategoryDetail, CheckoutInput, CookieConsent, CookieConsentInput, CrossSellItem, CustomerAddress, CustomerProfile, FilterField, GiftCardBalance, OrderDetail, OrderListItem, Page, PageDetail, PaginatedResponse, ProductDetail, ProductLabel, ProductListItem, ProductReviewsResponse, ProductsQuery, QuoteRequest, RegisterInput, ReturnRequest, ShopInfo, ShopSeo, type StorageAdapter, SubmitQuoteInput, SubmitReturnInput, SubmitReviewInput, type UseAddressesOptions, type UseCartCountOptions, type UseCartOptions, type UseCategoriesOptions, type UseCategoryOptions, type UseCustomerOptions, type UseFeaturedOptions, type UseFiltersOptions, type UseLabelsOptions, type UseOrderOptions, type UseOrdersOptions, type UsePageOptions, type UsePagesOptions, type UseProductOptions, type UseProductsOptions, type UseSearchOptions, type UseShopInfoOptions, type UseShopSeoOptions, WishlistItem, cookieStorage, createMemoryStorage, detectStorage, formatPrice, localStorageAdapter, memoryStorage, useAddresses, useAuth, useBehio, useBehioClient, useBundle, useBundles, useCart, useCartCount, useCategories, useCategory, useCheckout, useCookieConsent, useCrossSell, useCustomer, useFeatured, useFilters, useGiftCardBalance, useIsInWishlist, useLabels, useOrder, useOrders, usePage, usePages, useProduct, useProductPromotions, useProductReviews, useProducts, useQuoteStatus, useReturnStatus, useSearch, useShopInfo, useShopSeo, useSubmitQuote, useSubmitReturn, useSubmitReview, useWishlist };