@omni-commerce/sdk 0.2.0 → 0.4.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/index.js CHANGED
@@ -24,7 +24,7 @@ function normalizeClientOptions(options = {}) {
24
24
  }
25
25
 
26
26
  // src/version.ts
27
- var SDK_VERSION = "0.2.0";
27
+ var SDK_VERSION = "0.4.0";
28
28
  var SDK_USER_AGENT = `omnicommerce-js/${SDK_VERSION}`;
29
29
 
30
30
  // src/environments.ts
@@ -574,6 +574,427 @@ var AgentsClient = class {
574
574
  _http;
575
575
  general;
576
576
  };
577
+ var AnalyticsClient = class {
578
+ constructor(_http) {
579
+ this._http = _http;
580
+ }
581
+ _http;
582
+ /**
583
+ * Get Ads Analytics
584
+ *
585
+ * Ad spend, attributed sales, ROAS, and ACOS over the last 28 days, and per-product sales and ad metrics for today, yesterday, 7-day and 28-day averages, and the same day one and four weeks ago. Matches the Ads page. Requires `analytics:read`.
586
+
587
+ Amounts are in `data.filters.currency`. The periods count back from the end of the range.
588
+ *
589
+ * `GET /api/v1/analytics/ads`
590
+ */
591
+ getAds(request = {}, requestOptions) {
592
+ const {
593
+ organizationId,
594
+ from,
595
+ to,
596
+ timeZone,
597
+ marketplace,
598
+ country,
599
+ store,
600
+ currency
601
+ } = request ?? {};
602
+ return this._http.request({
603
+ method: "GET",
604
+ path: "/api/v1/analytics/ads",
605
+ query: {
606
+ organizationId,
607
+ from,
608
+ to,
609
+ timeZone,
610
+ marketplace,
611
+ country,
612
+ store,
613
+ currency
614
+ },
615
+ body: void 0,
616
+ ...mergeRequestOptions(requestOptions)
617
+ });
618
+ }
619
+ /**
620
+ * Get AI Traffic Analytics
621
+ *
622
+ * Visits and crawls from AI assistants and search engines: totals, a daily trend, breakdowns by source, route, country, and product, and recent events. Matches the AI Traffic page. Requires `analytics:read`.
623
+
624
+ A range covers at most 365 days; a longer one is shortened to the last 365 days. Read the applied range from `data.filters`.
625
+ *
626
+ * `GET /api/v1/analytics/ai-traffic`
627
+ */
628
+ getAiTraffic(request = {}, requestOptions) {
629
+ const {
630
+ organizationId,
631
+ from,
632
+ to,
633
+ timeZone,
634
+ source,
635
+ trafficType,
636
+ route,
637
+ country
638
+ } = request ?? {};
639
+ return this._http.request({
640
+ method: "GET",
641
+ path: "/api/v1/analytics/ai-traffic",
642
+ query: {
643
+ organizationId,
644
+ from,
645
+ to,
646
+ timeZone,
647
+ source,
648
+ trafficType,
649
+ route,
650
+ country
651
+ },
652
+ body: void 0,
653
+ ...mergeRequestOptions(requestOptions)
654
+ });
655
+ }
656
+ /**
657
+ * Get Video and LIVE Analytics
658
+ *
659
+ * Views, product clicks, orders, and GMV from shoppable videos and LIVE streams, by day, by content type, and per video. Matches the Video / LIVE page. Requires `analytics:read`.
660
+
661
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
662
+ *
663
+ * `GET /api/v1/analytics/content`
664
+ */
665
+ getContent(request = {}, requestOptions) {
666
+ const {
667
+ organizationId,
668
+ from,
669
+ to,
670
+ timeZone,
671
+ marketplace,
672
+ country,
673
+ store,
674
+ currency
675
+ } = request ?? {};
676
+ return this._http.request({
677
+ method: "GET",
678
+ path: "/api/v1/analytics/content",
679
+ query: {
680
+ organizationId,
681
+ from,
682
+ to,
683
+ timeZone,
684
+ marketplace,
685
+ country,
686
+ store,
687
+ currency
688
+ },
689
+ body: void 0,
690
+ ...mergeRequestOptions(requestOptions)
691
+ });
692
+ }
693
+ /**
694
+ * Get Order Analytics
695
+ *
696
+ * Order KPIs with their change against the previous period, a daily trend, sales by order status and by marketplace, and the top products by net sales. Repeat buyers are counted but not listed. Matches the Orders analysis page. Requires `analytics:read`.
697
+
698
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
699
+ *
700
+ * `GET /api/v1/analytics/orders`
701
+ */
702
+ getOrders(request = {}, requestOptions) {
703
+ const {
704
+ organizationId,
705
+ from,
706
+ to,
707
+ timeZone,
708
+ marketplace,
709
+ country,
710
+ store,
711
+ currency
712
+ } = request ?? {};
713
+ return this._http.request({
714
+ method: "GET",
715
+ path: "/api/v1/analytics/orders",
716
+ query: {
717
+ organizationId,
718
+ from,
719
+ to,
720
+ timeZone,
721
+ marketplace,
722
+ country,
723
+ store,
724
+ currency
725
+ },
726
+ body: void 0,
727
+ ...mergeRequestOptions(requestOptions)
728
+ });
729
+ }
730
+ /**
731
+ * Get Growth Overview
732
+ *
733
+ * Sales, traffic, and profit KPIs with their change against the previous period, a daily trend, the traffic funnel, sales by channel, top and lagging products, and ranked next actions. Matches the Growth Intelligence overview page. Requires `analytics:read`.
734
+
735
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
736
+ *
737
+ * `GET /api/v1/analytics/overview`
738
+ */
739
+ getOverview(request = {}, requestOptions) {
740
+ const {
741
+ organizationId,
742
+ from,
743
+ to,
744
+ timeZone,
745
+ marketplace,
746
+ country,
747
+ store,
748
+ currency
749
+ } = request ?? {};
750
+ return this._http.request({
751
+ method: "GET",
752
+ path: "/api/v1/analytics/overview",
753
+ query: {
754
+ organizationId,
755
+ from,
756
+ to,
757
+ timeZone,
758
+ marketplace,
759
+ country,
760
+ store,
761
+ currency
762
+ },
763
+ body: void 0,
764
+ ...mergeRequestOptions(requestOptions)
765
+ });
766
+ }
767
+ /**
768
+ * Get Pricing Analytics
769
+ *
770
+ * Selling products with their margin, velocity, stock cover, prices, competitor median, and a pricing recommendation. Matches the Pricing page. Requires `analytics:read`.
771
+
772
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
773
+ *
774
+ * `GET /api/v1/analytics/pricing`
775
+ */
776
+ getPricing(request = {}, requestOptions) {
777
+ const {
778
+ organizationId,
779
+ from,
780
+ to,
781
+ timeZone,
782
+ marketplace,
783
+ country,
784
+ store,
785
+ currency
786
+ } = request ?? {};
787
+ return this._http.request({
788
+ method: "GET",
789
+ path: "/api/v1/analytics/pricing",
790
+ query: {
791
+ organizationId,
792
+ from,
793
+ to,
794
+ timeZone,
795
+ marketplace,
796
+ country,
797
+ store,
798
+ currency
799
+ },
800
+ body: void 0,
801
+ ...mergeRequestOptions(requestOptions)
802
+ });
803
+ }
804
+ /**
805
+ * Get Product Analytics
806
+ *
807
+ * Per-product sales, traffic, price, stock, profit, and ad performance, ranked by net sales, with ranked insights. Pass `productId` for specific products, for example on a product page. Matches the Products page. Requires `analytics:read`.
808
+
809
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
810
+ *
811
+ * `GET /api/v1/analytics/products`
812
+ */
813
+ getProducts(request = {}, requestOptions) {
814
+ const {
815
+ organizationId,
816
+ from,
817
+ to,
818
+ timeZone,
819
+ marketplace,
820
+ country,
821
+ store,
822
+ currency,
823
+ q,
824
+ productId,
825
+ limit
826
+ } = request ?? {};
827
+ return this._http.request({
828
+ method: "GET",
829
+ path: "/api/v1/analytics/products",
830
+ query: {
831
+ organizationId,
832
+ from,
833
+ to,
834
+ timeZone,
835
+ marketplace,
836
+ country,
837
+ store,
838
+ currency,
839
+ q,
840
+ productId,
841
+ limit
842
+ },
843
+ body: void 0,
844
+ ...mergeRequestOptions(requestOptions)
845
+ });
846
+ }
847
+ /**
848
+ * Get Profit Analytics
849
+ *
850
+ * Revenue, costs, fees, and profit with a waterfall, cost breakdowns, a daily trend, the most and least profitable products, and products missing a cost price. Session members also need finance access. Matches the P&L Analysis page. Requires `analytics:read`.
851
+
852
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
853
+ *
854
+ * `GET /api/v1/analytics/profit`
855
+ */
856
+ getProfit(request = {}, requestOptions) {
857
+ const {
858
+ organizationId,
859
+ from,
860
+ to,
861
+ timeZone,
862
+ marketplace,
863
+ country,
864
+ store,
865
+ currency,
866
+ sku
867
+ } = request ?? {};
868
+ return this._http.request({
869
+ method: "GET",
870
+ path: "/api/v1/analytics/profit",
871
+ query: {
872
+ organizationId,
873
+ from,
874
+ to,
875
+ timeZone,
876
+ marketplace,
877
+ country,
878
+ store,
879
+ currency,
880
+ sku
881
+ },
882
+ body: void 0,
883
+ ...mergeRequestOptions(requestOptions)
884
+ });
885
+ }
886
+ /**
887
+ * Get Business Report
888
+ *
889
+ * The management summary: headline KPIs, top products, sales by marketplace, alerts, settlement totals, and data quality. Matches the Business Reports page. Requires `analytics:read`.
890
+
891
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
892
+ *
893
+ * `GET /api/v1/analytics/reports`
894
+ */
895
+ getReports(request = {}, requestOptions) {
896
+ const {
897
+ organizationId,
898
+ from,
899
+ to,
900
+ timeZone,
901
+ marketplace,
902
+ country,
903
+ store,
904
+ currency
905
+ } = request ?? {};
906
+ return this._http.request({
907
+ method: "GET",
908
+ path: "/api/v1/analytics/reports",
909
+ query: {
910
+ organizationId,
911
+ from,
912
+ to,
913
+ timeZone,
914
+ marketplace,
915
+ country,
916
+ store,
917
+ currency
918
+ },
919
+ body: void 0,
920
+ ...mergeRequestOptions(requestOptions)
921
+ });
922
+ }
923
+ /**
924
+ * Get Store Analytics
925
+ *
926
+ * Seller Centre shop metrics: visitors, page views, followers, the placed, paid, and confirmed buyer funnel, a daily trend, and the app and web split. Matches the Analytics (Seller Centre) page. Requires `analytics:read`.
927
+
928
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
929
+ *
930
+ * `GET /api/v1/analytics/stores`
931
+ */
932
+ getStores(request = {}, requestOptions) {
933
+ const {
934
+ organizationId,
935
+ from,
936
+ to,
937
+ timeZone,
938
+ marketplace,
939
+ country,
940
+ store,
941
+ currency
942
+ } = request ?? {};
943
+ return this._http.request({
944
+ method: "GET",
945
+ path: "/api/v1/analytics/stores",
946
+ query: {
947
+ organizationId,
948
+ from,
949
+ to,
950
+ timeZone,
951
+ marketplace,
952
+ country,
953
+ store,
954
+ currency
955
+ },
956
+ body: void 0,
957
+ ...mergeRequestOptions(requestOptions)
958
+ });
959
+ }
960
+ /**
961
+ * Get Traffic Analytics
962
+ *
963
+ * Impressions, page views, visitors, add-to-cart, and conversion, with the funnel, a daily trend, products ranked by lost conversion, diagnostics, and the videos that drive traffic. Matches the Traffic page. Requires `analytics:read`.
964
+
965
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
966
+ *
967
+ * `GET /api/v1/analytics/traffic`
968
+ */
969
+ getTraffic(request = {}, requestOptions) {
970
+ const {
971
+ organizationId,
972
+ from,
973
+ to,
974
+ timeZone,
975
+ marketplace,
976
+ country,
977
+ store,
978
+ currency
979
+ } = request ?? {};
980
+ return this._http.request({
981
+ method: "GET",
982
+ path: "/api/v1/analytics/traffic",
983
+ query: {
984
+ organizationId,
985
+ from,
986
+ to,
987
+ timeZone,
988
+ marketplace,
989
+ country,
990
+ store,
991
+ currency
992
+ },
993
+ body: void 0,
994
+ ...mergeRequestOptions(requestOptions)
995
+ });
996
+ }
997
+ };
577
998
  var AopClient = class {
578
999
  constructor(_http) {
579
1000
  this._http = _http;
@@ -665,44 +1086,6 @@ var AopClient = class {
665
1086
  });
666
1087
  }
667
1088
  };
668
- var ApiClient = class {
669
- constructor(_http) {
670
- this._http = _http;
671
- }
672
- _http;
673
- /**
674
- * API Root
675
- *
676
- * Public API discovery root. Merchant payments are handled by organization-scoped checkout session endpoints.
677
- *
678
- * `GET /api`
679
- */
680
- root(requestOptions) {
681
- return this._http.request({
682
- method: "GET",
683
- path: "/api",
684
- query: void 0,
685
- body: void 0,
686
- ...mergeRequestOptions(requestOptions)
687
- });
688
- }
689
- /**
690
- * API v1 Root
691
- *
692
- * Public API v1 discovery root. Merchant payments are handled by organization-scoped checkout session endpoints.
693
- *
694
- * `GET /api/v1`
695
- */
696
- v1(requestOptions) {
697
- return this._http.request({
698
- method: "GET",
699
- path: "/api/v1",
700
- query: void 0,
701
- body: void 0,
702
- ...mergeRequestOptions(requestOptions)
703
- });
704
- }
705
- };
706
1089
  var CampaignsClient = class {
707
1090
  constructor(_http) {
708
1091
  this._http = _http;
@@ -1534,6 +1917,63 @@ var OrdersClient = class {
1534
1917
  ...mergeRequestOptions(requestOptions)
1535
1918
  });
1536
1919
  }
1920
+ /**
1921
+ * Get Order Action Options
1922
+ *
1923
+ * Ask the marketplace which choices an action needs, such as pickup or drop-off for `ship`. Requires `orders:write`.
1924
+
1925
+ Send the chosen choice's `payload` with `POST /api/v1/orders/{orderId}/actions`.
1926
+ *
1927
+ * `GET /api/v1/orders/{orderId}/action-options`
1928
+ */
1929
+ getActionOptions(request, requestOptions) {
1930
+ const { orderId, organizationId, action } = request ?? {};
1931
+ return this._http.request({
1932
+ method: "GET",
1933
+ path: `/api/v1/orders/${encodePathParam("orderId", orderId)}/action-options`,
1934
+ query: { organizationId, action },
1935
+ body: void 0,
1936
+ ...mergeRequestOptions(requestOptions)
1937
+ });
1938
+ }
1939
+ /**
1940
+ * List Order Actions
1941
+ *
1942
+ * The order's 20 most recent action jobs, newest first, plus its latest successful label job. Requires `orders:read`.
1943
+
1944
+ Poll this after queueing an action. A succeeded `labels` job lists its label files in `labels`.
1945
+ *
1946
+ * `GET /api/v1/orders/{orderId}/actions`
1947
+ */
1948
+ listActions(request, requestOptions) {
1949
+ const { orderId, organizationId } = request ?? {};
1950
+ return this._http.request({
1951
+ method: "GET",
1952
+ path: `/api/v1/orders/${encodePathParam("orderId", orderId)}/actions`,
1953
+ query: { organizationId },
1954
+ body: void 0,
1955
+ ...mergeRequestOptions(requestOptions)
1956
+ });
1957
+ }
1958
+ /**
1959
+ * Queue Order Action
1960
+ *
1961
+ * Ship, cancel, generate shipping labels for, or update tracking on a marketplace order. Requires `orders:write`.
1962
+
1963
+ The marketplace call runs in the background: the response is `202` with `jobId`; poll `GET /api/v1/orders/{orderId}/actions`. A repeated `idempotencyKey` returns `200` with the original job.
1964
+ *
1965
+ * `POST /api/v1/orders/{orderId}/actions`
1966
+ */
1967
+ queueAction(request, requestOptions) {
1968
+ const { orderId, ...body } = request ?? {};
1969
+ return this._http.request({
1970
+ method: "POST",
1971
+ path: `/api/v1/orders/${encodePathParam("orderId", orderId)}/actions`,
1972
+ query: void 0,
1973
+ body,
1974
+ ...mergeRequestOptions(requestOptions)
1975
+ });
1976
+ }
1537
1977
  };
1538
1978
  var OrganizationsClient = class {
1539
1979
  constructor(_http) {
@@ -1701,7 +2141,9 @@ var ProductsClient = class {
1701
2141
  *
1702
2142
  * List products for the authenticated organization with optional filters and pagination. Authenticate with an API key or OAuth bearer token. The organization is taken from that credential; do not send `organizationId`.
1703
2143
 
1704
- Rows are in `items`. Read catalog stock from `items[].stockQuantity`: parent rows already aggregate their non-deleted variants, and virtual bundles use component availability with any manual cap. Null means unknown, not zero. List rows do not contain `inventoryQuantity`, `inventory.quantity`, or an embedded `variants` array.
2144
+ ### Stock and variants
2145
+
2146
+ Rows are in `items`. Read catalog stock from `items[].stockQuantity`: parent rows already aggregate their non-deleted variants, and virtual bundles use component availability with any manual cap. Null means unknown, not zero. A row with `variantCount` above 0 has variants; fetch them from `GET /api/v1/products/{productId}`. List rows do not contain `inventoryQuantity`, `inventory.quantity`, or an embedded `variants` array.
1705
2147
  *
1706
2148
  * `GET /api/v1/products`
1707
2149
  */
@@ -1795,6 +2237,8 @@ var ProductsClient = class {
1795
2237
  - Localization content and cultural notes
1796
2238
  - Intent queries and signals
1797
2239
  - Sources and claims
2240
+
2241
+ A parent product returns its variants in `variants`, with each variant's option values, price, stock, image, and marketplace listings.
1798
2242
  *
1799
2243
  * `GET /api/v1/products/{productId}`
1800
2244
  */
@@ -1888,6 +2332,25 @@ var ProductsClient = class {
1888
2332
  ...mergeRequestOptions(requestOptions)
1889
2333
  });
1890
2334
  }
2335
+ /**
2336
+ * Get Product Listings
2337
+ *
2338
+ * Where a product is listed: each marketplace's store, live or delisted state, item id, buyer-facing URL, and the latest publish attempt with any rejection details. Requires `catalog:read`.
2339
+
2340
+ Poll after `POST /api/v1/products/{productId}/publish`.
2341
+ *
2342
+ * `GET /api/v1/products/{productId}/listings`
2343
+ */
2344
+ getListings(request, requestOptions) {
2345
+ const { productId, organizationId } = request ?? {};
2346
+ return this._http.request({
2347
+ method: "GET",
2348
+ path: `/api/v1/products/${encodePathParam("productId", productId)}/listings`,
2349
+ query: { organizationId },
2350
+ body: void 0,
2351
+ ...mergeRequestOptions(requestOptions)
2352
+ });
2353
+ }
1891
2354
  /**
1892
2355
  * Update Product Price
1893
2356
  *
@@ -2246,6 +2709,108 @@ var ReturnsClient = class {
2246
2709
  });
2247
2710
  }
2248
2711
  };
2712
+ var ReviewsClient = class {
2713
+ constructor(_http) {
2714
+ this._http = _http;
2715
+ }
2716
+ _http;
2717
+ /**
2718
+ * List Reviews
2719
+ *
2720
+ * List marketplace product reviews, newest first unless `sortBy` says otherwise. Requires `reviews:read`.
2721
+
2722
+ Use `priority=unreplied` for a reply queue. `replyRestriction` is null when a reply will be accepted.
2723
+ *
2724
+ * `GET /api/v1/reviews`
2725
+ */
2726
+ list(request = {}, requestOptions) {
2727
+ const {
2728
+ organizationId,
2729
+ q,
2730
+ marketplace,
2731
+ status,
2732
+ priority,
2733
+ store,
2734
+ productId,
2735
+ sortBy,
2736
+ limit,
2737
+ offset
2738
+ } = request ?? {};
2739
+ return this._http.request({
2740
+ method: "GET",
2741
+ path: "/api/v1/reviews",
2742
+ query: {
2743
+ organizationId,
2744
+ q,
2745
+ marketplace,
2746
+ status,
2747
+ priority,
2748
+ store,
2749
+ productId,
2750
+ sortBy,
2751
+ limit,
2752
+ offset
2753
+ },
2754
+ body: void 0,
2755
+ ...mergeRequestOptions(requestOptions)
2756
+ });
2757
+ }
2758
+ /**
2759
+ * Get Review
2760
+ *
2761
+ * Read one review by its OmniCommerce UUID. Requires `reviews:read`.
2762
+ *
2763
+ * `GET /api/v1/reviews/{reviewId}`
2764
+ */
2765
+ get(request, requestOptions) {
2766
+ const { reviewId, organizationId } = request ?? {};
2767
+ return this._http.request({
2768
+ method: "GET",
2769
+ path: `/api/v1/reviews/${encodePathParam("reviewId", reviewId)}`,
2770
+ query: { organizationId },
2771
+ body: void 0,
2772
+ ...mergeRequestOptions(requestOptions)
2773
+ });
2774
+ }
2775
+ /**
2776
+ * Draft Review Reply
2777
+ *
2778
+ * Draft a reply with AI from the review, the product, recent replies, and the brand kit. Uses AI credits. Requires `reviews:write`.
2779
+
2780
+ Nothing is posted; send the text with `POST /api/v1/reviews/actions`.
2781
+ *
2782
+ * `POST /api/v1/reviews/{reviewId}/draft-reply`
2783
+ */
2784
+ draftReply(request, requestOptions) {
2785
+ const { reviewId, organizationId, ...body } = request ?? {};
2786
+ return this._http.request({
2787
+ method: "POST",
2788
+ path: `/api/v1/reviews/${encodePathParam("reviewId", reviewId)}/draft-reply`,
2789
+ query: { organizationId },
2790
+ body,
2791
+ ...mergeRequestOptions(requestOptions)
2792
+ });
2793
+ }
2794
+ /**
2795
+ * Act on Reviews
2796
+ *
2797
+ * Reply to up to 50 reviews, or send Amazon review requests for solicitation rows. Requires `reviews:write`.
2798
+
2799
+ Each target succeeds or fails on its own; read `data.results`. `ok` is true only when every target succeeds.
2800
+ *
2801
+ * `POST /api/v1/reviews/actions`
2802
+ */
2803
+ actions(request, requestOptions) {
2804
+ const { ...body } = request ?? {};
2805
+ return this._http.request({
2806
+ method: "POST",
2807
+ path: "/api/v1/reviews/actions",
2808
+ query: void 0,
2809
+ body,
2810
+ ...mergeRequestOptions(requestOptions)
2811
+ });
2812
+ }
2813
+ };
2249
2814
  var SearchClient = class {
2250
2815
  constructor(_http) {
2251
2816
  this._http = _http;
@@ -2745,8 +3310,8 @@ var OmniGeneratedClient = class {
2745
3310
  constructor(_http) {
2746
3311
  this._http = _http;
2747
3312
  this.agents = new AgentsClient(this._http);
3313
+ this.analytics = new AnalyticsClient(this._http);
2748
3314
  this.aop = new AopClient(this._http);
2749
- this.api = new ApiClient(this._http);
2750
3315
  this.campaigns = new CampaignsClient(this._http);
2751
3316
  this.catalog = new CatalogClient(this._http);
2752
3317
  this.checkoutSessions = new CheckoutSessionsClient(this._http);
@@ -2768,6 +3333,7 @@ var OmniGeneratedClient = class {
2768
3333
  this.products = new ProductsClient(this._http);
2769
3334
  this.promotions = new PromotionsClient(this._http);
2770
3335
  this.returns = new ReturnsClient(this._http);
3336
+ this.reviews = new ReviewsClient(this._http);
2771
3337
  this.search = new SearchClient(this._http);
2772
3338
  this.settlements = new SettlementsClient(this._http);
2773
3339
  this.sync = new SyncClient(this._http);
@@ -2779,8 +3345,8 @@ var OmniGeneratedClient = class {
2779
3345
  }
2780
3346
  _http;
2781
3347
  agents;
3348
+ analytics;
2782
3349
  aop;
2783
- api;
2784
3350
  campaigns;
2785
3351
  catalog;
2786
3352
  checkoutSessions;
@@ -2802,6 +3368,7 @@ var OmniGeneratedClient = class {
2802
3368
  products;
2803
3369
  promotions;
2804
3370
  returns;
3371
+ reviews;
2805
3372
  search;
2806
3373
  settlements;
2807
3374
  sync;