@depict-ai/ui 3.0.1 → 3.0.2

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/latest/index.cjs CHANGED
@@ -77,7 +77,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $a3280f0aad997933$expo
77
77
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $a3280f0aad997933$export$7bf543b9d9be2c22);
78
78
  $parcel$export(module.exports, "version", () => $b757f75811f3261f$export$83d89fbfd8236492);
79
79
  /*! Depict.ai search and product listing SDK */
80
- const $b757f75811f3261f$export$83d89fbfd8236492 = "3.0.1";
80
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "3.0.2";
81
81
  const $0f313083912e447a$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 14 26"><path d="M2 24.656c-.078 0-.156-.016-.234-.047s-.133-.066-.187-.129c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422l10.371-10.371L1.578 2.883c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422.258-.176.422-.176.305.059.422.176l10.805 10.793a.59.59 0 0 1 .176.434c0 .172-.059.305-.176.422L2.422 24.48a.42.42 0 0 1-.199.129.54.54 0 0 1-.223.047zm0 0"fill=#0f0f0f>`);
82
82
  function $0f313083912e447a$export$8be2714ec7f169ee(props = {}) {
83
83
  return (() => {
@@ -5517,100 +5517,54 @@ class $e1d6c0f3d89d531c$export$e015ed2f2950f2e3 {
5517
5517
  };
5518
5518
  #get_metadata;
5519
5519
  #get_session_id;
5520
- #guard_url_creator_length(expected, received) {
5521
- if (expected.length !== received.length) {
5522
- const e = new Error("displayTransformer returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
5523
- queueMicrotask(() => {
5524
- throw e;
5525
- });
5526
- throw e;
5527
- }
5528
- }
5529
5520
  async #run_url_creator_for_suggest(merchant, market, response) {
5530
- const page_url_creator = this.page_url_creator;
5531
5521
  const category_transformer = this.display_transformers?.categories;
5532
- if (!page_url_creator && !category_transformer) return response;
5522
+ if (!category_transformer) return response;
5533
5523
  // find category suggestions, run thing with them, and then replace them
5534
5524
  const category_suggestions = response.suggestions.filter(suggestion => suggestion.type === "category");
5535
- const page_urls = await (page_url_creator || category_transformer)({
5525
+ const transformed_category_suggestions = await category_transformer({
5536
5526
  market: market,
5537
5527
  merchant: merchant,
5538
- data: [...category_suggestions],
5539
- ...(page_url_creator ? {
5540
- type: "categories"
5541
- } : {})
5528
+ data: [...category_suggestions]
5542
5529
  });
5543
- this.#guard_url_creator_length(category_suggestions, page_urls);
5544
- while (page_urls.length)
5545
- // Copy over getters so we sneakily can make this reactive
5546
- Object.defineProperties(category_suggestions.pop(), Object.getOwnPropertyDescriptors(page_urls.pop()));
5530
+ response.suggestions = transformed_category_suggestions;
5547
5531
  return response;
5548
5532
  }
5549
5533
  async #run_display_transformers_for_rest(merchant, market, input_data) {
5550
5534
  const {
5551
- page_url_creator: page_url_creator,
5552
5535
  display_transformers: display_transformers
5553
5536
  } = this;
5554
- if (!page_url_creator && !display_transformers) return input_data;
5537
+ if (!display_transformers) return input_data;
5555
5538
  const product_transformer = display_transformers?.products;
5556
5539
  const category_transformer = display_transformers?.categories;
5557
5540
  const content_result_transformer = display_transformers?.contentResults;
5558
5541
  const displays = input_data.displays;
5559
- const owner = $gVhhF$solidjs.getOwner();
5560
5542
  const {
5561
- breadcrumbs: breadcrumbs,
5562
- quick_links: quick_links,
5563
5543
  content_search_links: content_search_links
5564
5544
  } = input_data;
5565
- if (displays && (page_url_creator || product_transformer)) {
5566
- const page_urls = await (page_url_creator || product_transformer)({
5545
+ if (displays && product_transformer) {
5546
+ const transformed_displays = await product_transformer({
5567
5547
  merchant: merchant,
5568
5548
  market: market,
5569
- displays: [...input_data.displays],
5570
- ...(page_url_creator ? {
5571
- type: "products"
5572
- } : {})
5549
+ displays: [...displays]
5573
5550
  });
5574
- this.#guard_url_creator_length(displays, page_urls);
5575
- for (let i = 0; i < displays.length; i++) {
5576
- const new_display_or_page_url = page_urls[i];
5577
- const old_display = displays[i];
5578
- if ("page_url" in new_display_or_page_url && Object.keys(new_display_or_page_url).length === 1) {
5579
- // they only returned page_url, let's put it into the display
5580
- const old_display_was_modern = ("variant_index" in old_display);
5581
- if (old_display_was_modern) {
5582
- const variant_displays = old_display.variant_displays;
5583
- for (let i = 0; i < variant_displays.length; i++) variant_displays[i].page_url = new_display_or_page_url.page_url;
5584
- } else old_display.page_url = new_display_or_page_url.page_url;
5585
- } else
5586
- // We got a whole new display, let's replace it
5587
- displays[i] = new_display_or_page_url;
5588
- }
5551
+ input_data.displays = transformed_displays;
5589
5552
  }
5590
- if (page_url_creator || category_transformer) for (const category_display_array of [breadcrumbs, quick_links]) {
5553
+ if (category_transformer) for (const key of ["breadcrumbs", "quick_links"]) {
5554
+ const category_display_array = input_data[key];
5591
5555
  if (!category_display_array) continue;
5592
- const page_urls = await $gVhhF$solidjs.runWithOwner(owner, () => (page_url_creator || category_transformer)({
5556
+ const transformed_category_displays = await category_transformer({
5593
5557
  merchant: merchant,
5594
5558
  market: market,
5595
- data: [...category_display_array],
5596
- ...(page_url_creator ? {
5597
- type: "categories"
5598
- } : {})
5599
- }));
5600
- this.#guard_url_creator_length(category_display_array, page_urls);
5601
- for (let i = 0; i < category_display_array.length; i++)
5602
- // Copy over getters so we sneakily can make this reactive
5603
- Object.defineProperties(category_display_array[i], Object.getOwnPropertyDescriptors(page_urls[i]));
5604
- }
5605
- if (content_search_links?.length && content_result_transformer) {
5606
- const result = await $gVhhF$solidjs.runWithOwner(owner, () => content_result_transformer({
5607
- merchant: merchant,
5608
- market: market,
5609
- data: [...content_search_links]
5610
- }));
5611
- this.#guard_url_creator_length(content_search_links, result);
5612
- input_data.content_search_links = result;
5559
+ data: [...category_display_array]
5560
+ });
5561
+ input_data[key] = transformed_category_displays;
5613
5562
  }
5563
+ if (content_search_links?.length && content_result_transformer) input_data.content_search_links = await content_result_transformer({
5564
+ merchant: merchant,
5565
+ market: market,
5566
+ data: [...content_search_links]
5567
+ });
5614
5568
  return input_data;
5615
5569
  }
5616
5570
  async #cached_request({
@@ -5622,7 +5576,6 @@ class $e1d6c0f3d89d531c$export$e015ed2f2950f2e3 {
5622
5576
  }) {
5623
5577
  const cache_obj = this.#get_cache_obj_for_endpoint(endpoint_);
5624
5578
  const with_ids = this.#add_ids_to_request(input_req_);
5625
- const owner = $gVhhF$solidjs.getOwner();
5626
5579
  const metaData = await this.#get_metadata?.();
5627
5580
  const request = metaData ? Object.assign(with_ids, {
5628
5581
  metadata: metaData
@@ -5650,7 +5603,7 @@ class $e1d6c0f3d89d531c$export$e015ed2f2950f2e3 {
5650
5603
  let result;
5651
5604
  try {
5652
5605
  const unmodified_result = await api_response.json();
5653
- result = await $gVhhF$solidjs.runWithOwner(owner, () => this.#run_display_transformers_for_rest(input_req_.merchant, input_req_.market, unmodified_result));
5606
+ result = await this.#run_display_transformers_for_rest(input_req_.merchant, input_req_.market, unmodified_result);
5654
5607
  } catch (e) {
5655
5608
  $gVhhF$depictaiutilishared.dwarn("displayTransformer or json decoding failed", e);
5656
5609
  break return_successfully;
@@ -5681,17 +5634,14 @@ class $e1d6c0f3d89d531c$export$e015ed2f2950f2e3 {
5681
5634
  const {
5682
5635
  get_metadata: get_metadata,
5683
5636
  get_session_id: get_session_id,
5684
- page_url_creator: page_url_creator,
5685
5637
  display_transformers: display_transformers
5686
5638
  } = options ?? {};
5687
5639
  this.#get_metadata = get_metadata;
5688
5640
  this.#get_session_id = get_session_id;
5689
- this.page_url_creator = page_url_creator;
5690
5641
  this.display_transformers = display_transformers;
5691
5642
  }
5692
5643
  async suggest(input_req) {
5693
5644
  const with_ids = this.#add_ids_to_request(input_req);
5694
- const owner = $gVhhF$solidjs.getOwner();
5695
5645
  const metaData = await this.#get_metadata?.();
5696
5646
  const request = metaData ? Object.assign(with_ids, {
5697
5647
  metadata: JSON.stringify(metaData)
@@ -5703,7 +5653,7 @@ class $e1d6c0f3d89d531c$export$e015ed2f2950f2e3 {
5703
5653
  const decoded_json = await results.json();
5704
5654
  if (!Array.isArray(decoded_json?.suggestions)) break attempt_to_return_api_response;
5705
5655
  try {
5706
- return await $gVhhF$solidjs.runWithOwner(owner, () => this.#run_url_creator_for_suggest(input_req.merchant, input_req.market, decoded_json));
5656
+ return await this.#run_url_creator_for_suggest(input_req.merchant, input_req.market, decoded_json);
5707
5657
  } catch (e) {
5708
5658
  $gVhhF$depictaiutilishared.dwarn("displayTransformer failed", e);
5709
5659
  }
@@ -8848,7 +8798,6 @@ class $48567ac5b39bac56$export$f34314aa9505732e {
8848
8798
  constructor({
8849
8799
  api: api,
8850
8800
  on_navigation: on_navigation,
8851
- page_url_creator: page_url_creator,
8852
8801
  display_transformers: display_transformers,
8853
8802
  unique_instance_key_for_state = "",
8854
8803
  listing_id_state_key: listing_id_state_key,
@@ -8899,7 +8848,6 @@ class $48567ac5b39bac56$export$f34314aa9505732e {
8899
8848
  reset_history_state_: reset_history_state_,
8900
8849
  // @ts-ignore
8901
8850
  depict_api_: api ?? new (0, $e1d6c0f3d89d531c$export$e015ed2f2950f2e3)({
8902
- page_url_creator: page_url_creator,
8903
8851
  display_transformers: display_transformers
8904
8852
  }),
8905
8853
  router_: this.#router,
@@ -11756,7 +11704,6 @@ class $2c61e4cd8229c49a$export$ac6237957a15b3f0 {
11756
11704
  url_transformer: url_transformer,
11757
11705
  on_navigation: on_navigation,
11758
11706
  enable_category_suggestions = true,
11759
- page_url_creator: page_url_creator,
11760
11707
  display_transformers: display_transformers,
11761
11708
  api: api,
11762
11709
  // Stuff needed for non-standard customer deployments that we shouldn't actually expose
@@ -11808,7 +11755,6 @@ class $2c61e4cd8229c49a$export$ac6237957a15b3f0 {
11808
11755
  });
11809
11756
  // @ts-ignore
11810
11757
  const depict_api_ = api ?? new (0, $e1d6c0f3d89d531c$export$e015ed2f2950f2e3)({
11811
- page_url_creator: page_url_creator,
11812
11758
  display_transformers: display_transformers
11813
11759
  });
11814
11760
  const previous_searches = $2b7a005a65221045$export$84bba84a7b837187(get_search_query_);
package/latest/index.d.ts CHANGED
@@ -11,7 +11,7 @@ import { ProductListingRequestV3 } from "@depict-ai/types/api/ProductListingRequ
11
11
  import { GetListingRequest } from "@depict-ai/types/api/GetListingRequest";
12
12
  import { BaseSearchRequestV3 } from "@depict-ai/types/api/BaseSearchRequestV3";
13
13
  import { SearchFilter as _SearchFilter2 } from "@depict-ai/types/api/SearchRequestV2";
14
- export const version = "3.0.1";
14
+ export const version = "3.0.2";
15
15
  /** @jsxImportSource solid-js */
16
16
  export function GenericSliderArrowButton(props?: {
17
17
  width_?: number;
@@ -603,56 +603,23 @@ export type DisplayTransformers<InputDisplay extends ModernDisplay, OutputDispla
603
603
  products?: (options: DisplayTransformerAlwaysThereData & {
604
604
  displays: InputDisplay[];
605
605
  }) => CanBePromiseWrapped<OutputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<OutputDisplay>[] : never>;
606
- categories?: (options: DisplayTransformerAlwaysThereData & {
607
- data: (Breadcrumb | Quicklink | CategorySuggestion)[];
608
- }) => CanBePromiseWrapped<{
606
+ categories?: <T extends Breadcrumb | Quicklink | CategorySuggestion>(options: DisplayTransformerAlwaysThereData & {
607
+ data: T[];
608
+ }) => CanBePromiseWrapped<(T & {
609
609
  page_url: string;
610
- }[]>;
610
+ })[]>;
611
611
  contentResults?: (options: DisplayTransformerAlwaysThereData & {
612
612
  data: ContentLink[];
613
613
  }) => CanBePromiseWrapped<ContentLink[]>;
614
614
  };
615
- export type SomethingTakingAPageURLCreatorOrDisplayTransformers<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = InputDisplay extends ModernDisplay ? "page_url" extends keyof InputDisplay["variant_displays"][number] ? {
616
- page_url_creator?: PageURLCreator<InputDisplay, OutputDisplay>;
617
- display_transformers?: never;
618
- } | {
619
- page_url_creator?: never;
615
+ export type SomethingTakingADisplayTransformers<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = InputDisplay extends ModernDisplay ? "page_url" extends keyof InputDisplay["variant_displays"][number] ? {
620
616
  display_transformers: DisplayTransformers<InputDisplay, OutputDisplay>;
621
617
  } : {
622
- page_url_creator: PageURLCreator<InputDisplay, OutputDisplay>;
623
- display_transformers?: never;
624
- } | {
625
618
  display_transformers: DisplayTransformers<InputDisplay, OutputDisplay>;
626
- page_url_creator?: never;
627
619
  } : {
628
620
  page_url_creator?: never;
629
621
  display_transformers?: never;
630
622
  };
631
- type PageURLCreatorAlwaysThereData = {
632
- merchant: string;
633
- market: string;
634
- };
635
- type PageURLCreatorCategoryData = {
636
- type: "categories";
637
- data: (Breadcrumb | Quicklink | CategorySuggestion)[];
638
- };
639
- type PageURLCreatorProductData<T extends ModernDisplay> = {
640
- displays: T[];
641
- type: "products";
642
- };
643
- type PageURLCreatorOptions<InputDisplay extends ModernDisplay> = PageURLCreatorAlwaysThereData & (PageURLCreatorCategoryData | PageURLCreatorProductData<InputDisplay>);
644
- /**
645
- * @deprecated use DisplayTransformers instead
646
- * PageUrlCreator is, in its most basic form, a function that takes in a list of categories or products and returns a list of page_urls for the provided categories or products.
647
- * It's main use case is to allow for the creation of links to the product or category pages on the merchant's site.
648
- * It can also be used for the depict customers which already have links to change those links (i.e. for staging sites).
649
- * Also, it can be used to enrich the data for each product card in a batched way, which is why it can be an async function and return a whole display in the case of products.
650
- */
651
- export type PageURLCreator<InputDisplay extends ModernDisplay, OutputDisplay extends ModernDisplay | never> = (options: PageURLCreatorOptions<InputDisplay>) => (typeof options)["type"] extends "categories" ? CanBePromiseWrapped<{
652
- page_url: string;
653
- }[]> : CanBePromiseWrapped<{
654
- page_url: string;
655
- }[]> | CanBePromiseWrapped<OutputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<OutputDisplay>[] : never>;
656
623
  export type ExclusiveId = {
657
624
  categoryId: string;
658
625
  productId?: undefined;
@@ -731,21 +698,21 @@ type SearchSuggestionsResponseAfterURLCreator = { [K in keyof SearchSuggestionsR
731
698
  type AddPageUrlToDisplay<T extends any[]> = (T[number] & {
732
699
  page_url: string;
733
700
  })[];
734
- type SearchResponseAfterURLCreator = { [K in keyof SearchResponse]: K extends "displays" ? AddPageUrlToDisplay<SearchResponse[K]> : K extends "filters" ? AddActualFieldToFilters<SearchResponse[K]> : SearchResponse[K] };
701
+ type SearchResponseAfterDisplayTransformer = { [K in keyof SearchResponse]: K extends "displays" ? AddPageUrlToDisplay<SearchResponse[K]> : K extends "filters" ? AddActualFieldToFilters<SearchResponse[K]> : SearchResponse[K] };
735
702
  type QuicklinksOrBreadCrumbsWithPageURL<T extends Breadcrumb | Quicklink> = T & {
736
703
  page_url: string;
737
704
  };
738
705
  type _AddPageUrlToDisplay1<T extends any[]> = (T[number] & {
739
706
  page_url: string;
740
707
  })[];
741
- type ProductListingResponseAfterURLCreator = { [K in keyof ProductListingResponseV3]: K extends "displays" ? _AddPageUrlToDisplay1<ProductListingResponseV3[K]> : K extends "filters" ? AddActualFieldToFilters<ProductListingResponseV3[K]> : ProductListingResponseV3[K] };
742
- type GetListingResponseAfterURLCreator = { [K in keyof GetListingResponse]: K extends "breadcrumbs" ? QuicklinksOrBreadCrumbsWithPageURL<Breadcrumb>[] : K extends "quick_links" ? QuicklinksOrBreadCrumbsWithPageURL<Quicklink>[] : GetListingResponse[K] };
708
+ type ProductListingResponseAfterDisplayTransformer = { [K in keyof ProductListingResponseV3]: K extends "displays" ? _AddPageUrlToDisplay1<ProductListingResponseV3[K]> : K extends "filters" ? AddActualFieldToFilters<ProductListingResponseV3[K]> : ProductListingResponseV3[K] };
709
+ type GetListingResponseAfterDisplayTransformer = { [K in keyof GetListingResponse]: K extends "breadcrumbs" ? QuicklinksOrBreadCrumbsWithPageURL<Breadcrumb>[] : K extends "quick_links" ? QuicklinksOrBreadCrumbsWithPageURL<Quicklink>[] : GetListingResponse[K] };
743
710
  type DepictAPIConstructorOptions<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = {
744
711
  get_metadata?: () => Promise<{
745
712
  [k: string]: string;
746
713
  } | undefined>;
747
714
  get_session_id?: () => string | undefined;
748
- } & SomethingTakingAPageURLCreatorOrDisplayTransformers<InputDisplay, OutputDisplay>;
715
+ } & SomethingTakingADisplayTransformers<InputDisplay, OutputDisplay>;
749
716
  interface GetListingOptions extends GetListingRequest {
750
717
  listing_id: string;
751
718
  session_id?: string;
@@ -757,21 +724,20 @@ interface GetListingOptions extends GetListingRequest {
757
724
  */
758
725
  export class DepictAPI<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never = InputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<InputDisplay> : never> {
759
726
  #private;
760
- page_url_creator: PageURLCreator<ModernDisplay, OutputDisplay> | undefined;
761
727
  display_transformers: DisplayTransformers<ModernDisplay, OutputDisplay> | undefined;
762
728
  constructor(options: DepictAPIConstructorOptions<InputDisplay, OutputDisplay>);
763
729
  suggest(input_req: SearchSuggestionsRequestV3): Promise<SearchSuggestionsResponseAfterURLCreator & {
764
730
  failed?: true;
765
731
  }>;
766
- query(input_req: SearchRequestV3): Promise<SearchResponseAfterURLCreator & {
732
+ query(input_req: SearchRequestV3): Promise<SearchResponseAfterDisplayTransformer & {
767
733
  failed?: true;
768
734
  }>;
769
- get_listing(input_req: GetListingOptions): Promise<GetListingResponseAfterURLCreator & {
735
+ get_listing(input_req: GetListingOptions): Promise<GetListingResponseAfterDisplayTransformer & {
770
736
  failed?: true;
771
737
  }>;
772
738
  get_listing_products(input_req: ProductListingRequestV3 & {
773
739
  listing_id: string;
774
- }): Promise<ProductListingResponseAfterURLCreator & {
740
+ }): Promise<ProductListingResponseAfterDisplayTransformer & {
775
741
  failed?: true;
776
742
  }>;
777
743
  get_recommended<T extends Display>(input_req: BaseSearchRequestV3): Promise<{
@@ -823,7 +789,7 @@ type CategoryConstructorOptionsWithApi<InputDisplay extends Display, OutputDispl
823
789
  };
824
790
  type CategoryConstructorOptionsWithoutApi<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = GeneralCategoryListingOptions & {
825
791
  api?: never;
826
- } & SomethingTakingAPageURLCreatorOrDisplayTransformers<InputDisplay, OutputDisplay>;
792
+ } & SomethingTakingADisplayTransformers<InputDisplay, OutputDisplay>;
827
793
  type DepictCategoryConstructorOptions<InputDisplay extends Display, OutputDisplay extends ModernDisplay> = CategoryConstructorOptionsWithApi<InputDisplay, OutputDisplay> | CategoryConstructorOptionsWithoutApi<InputDisplay, OutputDisplay>;
828
794
  export class DepictCategory<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never = InputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<InputDisplay> : never> {
829
795
  #private;
@@ -844,7 +810,6 @@ export class DepictCategory<InputDisplay extends Display, OutputDisplay extends
844
810
  constructor({
845
811
  api,
846
812
  on_navigation,
847
- page_url_creator,
848
813
  display_transformers,
849
814
  unique_instance_key_for_state,
850
815
  listing_id_state_key,
@@ -929,7 +894,7 @@ type ConstructorOptionsWithApi<InputDisplay extends Display, OutputDisplay exten
929
894
  };
930
895
  type ConstructorOptionsWithoutAPI<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = GeneralConstructorOptions<InputDisplay, OutputDisplay> & {
931
896
  api?: never;
932
- } & SomethingTakingAPageURLCreatorOrDisplayTransformers<InputDisplay, OutputDisplay>;
897
+ } & SomethingTakingADisplayTransformers<InputDisplay, OutputDisplay>;
933
898
  type ConstructorOptions<InputDisplay extends Display, OutputDisplay extends ModernDisplay> = ConstructorOptionsWithApi<InputDisplay, OutputDisplay> | ConstructorOptionsWithoutAPI<InputDisplay, OutputDisplay>;
934
899
  export type OpenModalArguments = [options_for_modal?: {
935
900
  style_props_?: Signal<JSX.CSSProperties>;
@@ -947,7 +912,6 @@ export class DepictSearch<InputDisplay extends Display, OutputDisplay extends Mo
947
912
  url_transformer,
948
913
  on_navigation,
949
914
  enable_category_suggestions,
950
- page_url_creator,
951
915
  display_transformers,
952
916
  api,
953
917
  disable_scrolling_during_modal,
@@ -1024,46 +988,16 @@ export type BaseProviderConfig<InputDisplay extends Display, PossibleTransformed
1024
988
  */
1025
989
  uniqueInstanceKeyForState?: string;
1026
990
  } & (InputDisplay extends ModernDisplay ? "page_url" extends keyof InputDisplay["variant_displays"][number] ? {
1027
- /**
1028
- * @deprecated use displayTransformers instead
1029
- */
1030
- pageURLCreator?: PageURLCreator<InputDisplay, PossibleTransformedDisplay>;
1031
- /**
1032
- * Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
1033
- */
1034
- displayTransformers?: never;
1035
- } | {
1036
- /**
1037
- * @deprecated use displayTransformers instead
1038
- */
1039
- pageURLCreator?: never;
1040
991
  /**
1041
992
  * Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
1042
993
  */
1043
994
  displayTransformers: DisplayTransformers<InputDisplay, PossibleTransformedDisplay>;
1044
995
  } : {
1045
- /**
1046
- * @deprecated use displayTransformers instead
1047
- */
1048
- pageURLCreator: PageURLCreator<InputDisplay, PossibleTransformedDisplay>;
1049
- /**
1050
- * Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
1051
- */
1052
- displayTransformers?: never;
1053
- } | {
1054
996
  /**
1055
997
  * Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
1056
998
  */
1057
999
  displayTransformers: DisplayTransformers<InputDisplay, PossibleTransformedDisplay>;
1058
- /**
1059
- * @deprecated use displayTransformers instead
1060
- */
1061
- pageURLCreator?: never;
1062
1000
  } : {
1063
- /**
1064
- * @deprecated use displayTransformers instead
1065
- */
1066
- pageURLCreator?: never;
1067
1001
  /**
1068
1002
  * Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
1069
1003
  */
package/latest/index.js CHANGED
@@ -7,7 +7,7 @@ import { createStore as $9HbP8$createStore, reconcile as $9HbP8$reconcile } from
7
7
  /*! Depict.ai search and product listing SDK */
8
8
  import { register_es_version } from "../multi_import_deduplicator.mjs";
9
9
  register_es_version("ui", "latest");
10
- const $ec291e0010116877$export$83d89fbfd8236492 = "3.0.1";
10
+ const $ec291e0010116877$export$83d89fbfd8236492 = "3.0.2";
11
11
  const $fbbadcb080ad1d4a$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 14 26"><path d="M2 24.656c-.078 0-.156-.016-.234-.047s-.133-.066-.187-.129c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422l10.371-10.371L1.578 2.883c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422.258-.176.422-.176.305.059.422.176l10.805 10.793a.59.59 0 0 1 .176.434c0 .172-.059.305-.176.422L2.422 24.48a.42.42 0 0 1-.199.129.54.54 0 0 1-.223.047zm0 0"fill=#0f0f0f>`);
12
12
  function $fbbadcb080ad1d4a$export$8be2714ec7f169ee(props = {}) {
13
13
  return (() => {
@@ -5447,100 +5447,54 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
5447
5447
  };
5448
5448
  #get_metadata;
5449
5449
  #get_session_id;
5450
- #guard_url_creator_length(expected, received) {
5451
- if (expected.length !== received.length) {
5452
- const e = new Error("displayTransformer returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
5453
- queueMicrotask(() => {
5454
- throw e;
5455
- });
5456
- throw e;
5457
- }
5458
- }
5459
5450
  async #run_url_creator_for_suggest(merchant, market, response) {
5460
- const page_url_creator = this.page_url_creator;
5461
5451
  const category_transformer = this.display_transformers?.categories;
5462
- if (!page_url_creator && !category_transformer) return response;
5452
+ if (!category_transformer) return response;
5463
5453
  // find category suggestions, run thing with them, and then replace them
5464
5454
  const category_suggestions = response.suggestions.filter(suggestion => suggestion.type === "category");
5465
- const page_urls = await (page_url_creator || category_transformer)({
5455
+ const transformed_category_suggestions = await category_transformer({
5466
5456
  market: market,
5467
5457
  merchant: merchant,
5468
- data: [...category_suggestions],
5469
- ...(page_url_creator ? {
5470
- type: "categories"
5471
- } : {})
5458
+ data: [...category_suggestions]
5472
5459
  });
5473
- this.#guard_url_creator_length(category_suggestions, page_urls);
5474
- while (page_urls.length)
5475
- // Copy over getters so we sneakily can make this reactive
5476
- Object.defineProperties(category_suggestions.pop(), Object.getOwnPropertyDescriptors(page_urls.pop()));
5460
+ response.suggestions = transformed_category_suggestions;
5477
5461
  return response;
5478
5462
  }
5479
5463
  async #run_display_transformers_for_rest(merchant, market, input_data) {
5480
5464
  const {
5481
- page_url_creator: page_url_creator,
5482
5465
  display_transformers: display_transformers
5483
5466
  } = this;
5484
- if (!page_url_creator && !display_transformers) return input_data;
5467
+ if (!display_transformers) return input_data;
5485
5468
  const product_transformer = display_transformers?.products;
5486
5469
  const category_transformer = display_transformers?.categories;
5487
5470
  const content_result_transformer = display_transformers?.contentResults;
5488
5471
  const displays = input_data.displays;
5489
- const owner = $9HbP8$getOwner();
5490
5472
  const {
5491
- breadcrumbs: breadcrumbs,
5492
- quick_links: quick_links,
5493
5473
  content_search_links: content_search_links
5494
5474
  } = input_data;
5495
- if (displays && (page_url_creator || product_transformer)) {
5496
- const page_urls = await (page_url_creator || product_transformer)({
5475
+ if (displays && product_transformer) {
5476
+ const transformed_displays = await product_transformer({
5497
5477
  merchant: merchant,
5498
5478
  market: market,
5499
- displays: [...input_data.displays],
5500
- ...(page_url_creator ? {
5501
- type: "products"
5502
- } : {})
5479
+ displays: [...displays]
5503
5480
  });
5504
- this.#guard_url_creator_length(displays, page_urls);
5505
- for (let i = 0; i < displays.length; i++) {
5506
- const new_display_or_page_url = page_urls[i];
5507
- const old_display = displays[i];
5508
- if ("page_url" in new_display_or_page_url && Object.keys(new_display_or_page_url).length === 1) {
5509
- // they only returned page_url, let's put it into the display
5510
- const old_display_was_modern = ("variant_index" in old_display);
5511
- if (old_display_was_modern) {
5512
- const variant_displays = old_display.variant_displays;
5513
- for (let i = 0; i < variant_displays.length; i++) variant_displays[i].page_url = new_display_or_page_url.page_url;
5514
- } else old_display.page_url = new_display_or_page_url.page_url;
5515
- } else
5516
- // We got a whole new display, let's replace it
5517
- displays[i] = new_display_or_page_url;
5518
- }
5481
+ input_data.displays = transformed_displays;
5519
5482
  }
5520
- if (page_url_creator || category_transformer) for (const category_display_array of [breadcrumbs, quick_links]) {
5483
+ if (category_transformer) for (const key of ["breadcrumbs", "quick_links"]) {
5484
+ const category_display_array = input_data[key];
5521
5485
  if (!category_display_array) continue;
5522
- const page_urls = await $9HbP8$runWithOwner(owner, () => (page_url_creator || category_transformer)({
5486
+ const transformed_category_displays = await category_transformer({
5523
5487
  merchant: merchant,
5524
5488
  market: market,
5525
- data: [...category_display_array],
5526
- ...(page_url_creator ? {
5527
- type: "categories"
5528
- } : {})
5529
- }));
5530
- this.#guard_url_creator_length(category_display_array, page_urls);
5531
- for (let i = 0; i < category_display_array.length; i++)
5532
- // Copy over getters so we sneakily can make this reactive
5533
- Object.defineProperties(category_display_array[i], Object.getOwnPropertyDescriptors(page_urls[i]));
5534
- }
5535
- if (content_search_links?.length && content_result_transformer) {
5536
- const result = await $9HbP8$runWithOwner(owner, () => content_result_transformer({
5537
- merchant: merchant,
5538
- market: market,
5539
- data: [...content_search_links]
5540
- }));
5541
- this.#guard_url_creator_length(content_search_links, result);
5542
- input_data.content_search_links = result;
5489
+ data: [...category_display_array]
5490
+ });
5491
+ input_data[key] = transformed_category_displays;
5543
5492
  }
5493
+ if (content_search_links?.length && content_result_transformer) input_data.content_search_links = await content_result_transformer({
5494
+ merchant: merchant,
5495
+ market: market,
5496
+ data: [...content_search_links]
5497
+ });
5544
5498
  return input_data;
5545
5499
  }
5546
5500
  async #cached_request({
@@ -5552,7 +5506,6 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
5552
5506
  }) {
5553
5507
  const cache_obj = this.#get_cache_obj_for_endpoint(endpoint_);
5554
5508
  const with_ids = this.#add_ids_to_request(input_req_);
5555
- const owner = $9HbP8$getOwner();
5556
5509
  const metaData = await this.#get_metadata?.();
5557
5510
  const request = metaData ? Object.assign(with_ids, {
5558
5511
  metadata: metaData
@@ -5580,7 +5533,7 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
5580
5533
  let result;
5581
5534
  try {
5582
5535
  const unmodified_result = await api_response.json();
5583
- result = await $9HbP8$runWithOwner(owner, () => this.#run_display_transformers_for_rest(input_req_.merchant, input_req_.market, unmodified_result));
5536
+ result = await this.#run_display_transformers_for_rest(input_req_.merchant, input_req_.market, unmodified_result);
5584
5537
  } catch (e) {
5585
5538
  $9HbP8$dwarn("displayTransformer or json decoding failed", e);
5586
5539
  break return_successfully;
@@ -5611,17 +5564,14 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
5611
5564
  const {
5612
5565
  get_metadata: get_metadata,
5613
5566
  get_session_id: get_session_id,
5614
- page_url_creator: page_url_creator,
5615
5567
  display_transformers: display_transformers
5616
5568
  } = options ?? {};
5617
5569
  this.#get_metadata = get_metadata;
5618
5570
  this.#get_session_id = get_session_id;
5619
- this.page_url_creator = page_url_creator;
5620
5571
  this.display_transformers = display_transformers;
5621
5572
  }
5622
5573
  async suggest(input_req) {
5623
5574
  const with_ids = this.#add_ids_to_request(input_req);
5624
- const owner = $9HbP8$getOwner();
5625
5575
  const metaData = await this.#get_metadata?.();
5626
5576
  const request = metaData ? Object.assign(with_ids, {
5627
5577
  metadata: JSON.stringify(metaData)
@@ -5633,7 +5583,7 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
5633
5583
  const decoded_json = await results.json();
5634
5584
  if (!Array.isArray(decoded_json?.suggestions)) break attempt_to_return_api_response;
5635
5585
  try {
5636
- return await $9HbP8$runWithOwner(owner, () => this.#run_url_creator_for_suggest(input_req.merchant, input_req.market, decoded_json));
5586
+ return await this.#run_url_creator_for_suggest(input_req.merchant, input_req.market, decoded_json);
5637
5587
  } catch (e) {
5638
5588
  $9HbP8$dwarn("displayTransformer failed", e);
5639
5589
  }
@@ -8778,7 +8728,6 @@ class $961b5c64bef4662f$export$f34314aa9505732e {
8778
8728
  constructor({
8779
8729
  api: api,
8780
8730
  on_navigation: on_navigation,
8781
- page_url_creator: page_url_creator,
8782
8731
  display_transformers: display_transformers,
8783
8732
  unique_instance_key_for_state = "",
8784
8733
  listing_id_state_key: listing_id_state_key,
@@ -8829,7 +8778,6 @@ class $961b5c64bef4662f$export$f34314aa9505732e {
8829
8778
  reset_history_state_: reset_history_state_,
8830
8779
  // @ts-ignore
8831
8780
  depict_api_: api ?? new (0, $7fa23e2a0079eca4$export$e015ed2f2950f2e3)({
8832
- page_url_creator: page_url_creator,
8833
8781
  display_transformers: display_transformers
8834
8782
  }),
8835
8783
  router_: this.#router,
@@ -11686,7 +11634,6 @@ class $806c97b931758897$export$ac6237957a15b3f0 {
11686
11634
  url_transformer: url_transformer,
11687
11635
  on_navigation: on_navigation,
11688
11636
  enable_category_suggestions = true,
11689
- page_url_creator: page_url_creator,
11690
11637
  display_transformers: display_transformers,
11691
11638
  api: api,
11692
11639
  // Stuff needed for non-standard customer deployments that we shouldn't actually expose
@@ -11738,7 +11685,6 @@ class $806c97b931758897$export$ac6237957a15b3f0 {
11738
11685
  });
11739
11686
  // @ts-ignore
11740
11687
  const depict_api_ = api ?? new (0, $7fa23e2a0079eca4$export$e015ed2f2950f2e3)({
11741
- page_url_creator: page_url_creator,
11742
11688
  display_transformers: display_transformers
11743
11689
  });
11744
11690
  const previous_searches = $21f51c14cb3f586f$export$84bba84a7b837187(get_search_query_);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@depict-ai/ui",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "description": "Base package containing the actual UI of Depict UI along with translations, with a not-simplified API. We recommend using @depict-ai/js-ui or @depict-ai/react-ui instead.",
5
5
  "packageManager": "yarn@3.2.2",
6
6
  "sass": "styles.scss",