@instockng/api-client 1.0.17 → 1.0.19

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.
@@ -2366,3 +2366,201 @@ export declare function checkoutCart(cartId: string, checkoutData: {
2366
2366
  prospectReason: import("@prisma/client").$Enums.ProspectReason | null;
2367
2367
  userActionToken: string;
2368
2368
  }>;
2369
+ /**
2370
+ * Fetch recommended products for a cart
2371
+ *
2372
+ * @param cartId - Cart UUID
2373
+ * @param limit - Maximum number of recommendations (default: 6)
2374
+ * @returns Array of recommended products from the same brand
2375
+ */
2376
+ export declare function fetchCartRecommendations(cartId: string, limit: number): Promise<{
2377
+ brand: {
2378
+ createdAt: string;
2379
+ updatedAt: string;
2380
+ deletedAt: string;
2381
+ id: string;
2382
+ name: string;
2383
+ slug: string;
2384
+ logoUrl: string | null;
2385
+ siteUrl: string;
2386
+ domain: string;
2387
+ metaPixelId: string | null;
2388
+ tiktokPixelId: string | null;
2389
+ paystackPublicKey: string | null;
2390
+ paystackSecretKey: string | null;
2391
+ };
2392
+ variants: {
2393
+ createdAt: string;
2394
+ updatedAt: string;
2395
+ price: number;
2396
+ deletedAt: string;
2397
+ id: string;
2398
+ name: string | null;
2399
+ isActive: boolean;
2400
+ thumbnailUrl: string | null;
2401
+ productId: string;
2402
+ sku: string;
2403
+ trackInventory: boolean;
2404
+ lowStockThreshold: number | null;
2405
+ }[];
2406
+ id: string;
2407
+ name: string;
2408
+ slug: string;
2409
+ createdAt: string;
2410
+ updatedAt: string;
2411
+ deletedAt: string;
2412
+ brandId: string;
2413
+ isActive: boolean;
2414
+ description: string | null;
2415
+ thumbnailUrl: string | null;
2416
+ quantityDiscounts: string | number | boolean | {
2417
+ [x: string]: string | number | boolean | /*elided*/ any | {
2418
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2419
+ length: number;
2420
+ toString: never;
2421
+ toLocaleString: never;
2422
+ pop: never;
2423
+ push: never;
2424
+ concat: never;
2425
+ join: never;
2426
+ reverse: never;
2427
+ shift: never;
2428
+ slice: never;
2429
+ sort: never;
2430
+ splice: never;
2431
+ unshift: never;
2432
+ indexOf: never;
2433
+ lastIndexOf: never;
2434
+ every: never;
2435
+ some: never;
2436
+ forEach: never;
2437
+ map: never;
2438
+ filter: never;
2439
+ reduce: never;
2440
+ reduceRight: never;
2441
+ find: never;
2442
+ findIndex: never;
2443
+ fill: never;
2444
+ copyWithin: never;
2445
+ entries: never;
2446
+ keys: never;
2447
+ values: never;
2448
+ includes: never;
2449
+ flatMap: never;
2450
+ flat: never;
2451
+ [Symbol.iterator]: never;
2452
+ readonly [Symbol.unscopables]: {
2453
+ [x: number]: boolean;
2454
+ length?: boolean;
2455
+ toString?: boolean;
2456
+ toLocaleString?: boolean;
2457
+ pop?: boolean;
2458
+ push?: boolean;
2459
+ concat?: boolean;
2460
+ join?: boolean;
2461
+ reverse?: boolean;
2462
+ shift?: boolean;
2463
+ slice?: boolean;
2464
+ sort?: boolean;
2465
+ splice?: boolean;
2466
+ unshift?: boolean;
2467
+ indexOf?: boolean;
2468
+ lastIndexOf?: boolean;
2469
+ every?: boolean;
2470
+ some?: boolean;
2471
+ forEach?: boolean;
2472
+ map?: boolean;
2473
+ filter?: boolean;
2474
+ reduce?: boolean;
2475
+ reduceRight?: boolean;
2476
+ find?: boolean;
2477
+ findIndex?: boolean;
2478
+ fill?: boolean;
2479
+ copyWithin?: boolean;
2480
+ entries?: boolean;
2481
+ keys?: boolean;
2482
+ values?: boolean;
2483
+ includes?: boolean;
2484
+ flatMap?: boolean;
2485
+ flat?: boolean;
2486
+ };
2487
+ };
2488
+ } | {
2489
+ [x: number]: string | number | boolean | {
2490
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2491
+ } | /*elided*/ any;
2492
+ length: number;
2493
+ toString: never;
2494
+ toLocaleString: never;
2495
+ pop: never;
2496
+ push: never;
2497
+ concat: never;
2498
+ join: never;
2499
+ reverse: never;
2500
+ shift: never;
2501
+ slice: never;
2502
+ sort: never;
2503
+ splice: never;
2504
+ unshift: never;
2505
+ indexOf: never;
2506
+ lastIndexOf: never;
2507
+ every: never;
2508
+ some: never;
2509
+ forEach: never;
2510
+ map: never;
2511
+ filter: never;
2512
+ reduce: never;
2513
+ reduceRight: never;
2514
+ find: never;
2515
+ findIndex: never;
2516
+ fill: never;
2517
+ copyWithin: never;
2518
+ entries: never;
2519
+ keys: never;
2520
+ values: never;
2521
+ includes: never;
2522
+ flatMap: never;
2523
+ flat: never;
2524
+ [Symbol.iterator]: never;
2525
+ readonly [Symbol.unscopables]: {
2526
+ [x: number]: boolean;
2527
+ length?: boolean;
2528
+ toString?: boolean;
2529
+ toLocaleString?: boolean;
2530
+ pop?: boolean;
2531
+ push?: boolean;
2532
+ concat?: boolean;
2533
+ join?: boolean;
2534
+ reverse?: boolean;
2535
+ shift?: boolean;
2536
+ slice?: boolean;
2537
+ sort?: boolean;
2538
+ splice?: boolean;
2539
+ unshift?: boolean;
2540
+ indexOf?: boolean;
2541
+ lastIndexOf?: boolean;
2542
+ every?: boolean;
2543
+ some?: boolean;
2544
+ forEach?: boolean;
2545
+ map?: boolean;
2546
+ filter?: boolean;
2547
+ reduce?: boolean;
2548
+ reduceRight?: boolean;
2549
+ find?: boolean;
2550
+ findIndex?: boolean;
2551
+ fill?: boolean;
2552
+ copyWithin?: boolean;
2553
+ entries?: boolean;
2554
+ keys?: boolean;
2555
+ values?: boolean;
2556
+ includes?: boolean;
2557
+ flatMap?: boolean;
2558
+ flat?: boolean;
2559
+ };
2560
+ };
2561
+ }[] | {
2562
+ error: {
2563
+ code: string;
2564
+ message: string;
2565
+ };
2566
+ }>;
@@ -174,3 +174,22 @@ export async function checkoutCart(cartId, checkoutData) {
174
174
  }
175
175
  return res.json();
176
176
  }
177
+ /**
178
+ * Fetch recommended products for a cart
179
+ *
180
+ * @param cartId - Cart UUID
181
+ * @param limit - Maximum number of recommendations (default: 6)
182
+ * @returns Array of recommended products from the same brand
183
+ */
184
+ export async function fetchCartRecommendations(cartId, limit) {
185
+ const clients = createRpcClients(API_URL);
186
+ const res = await clients.carts[':id'].recommendations.$get({
187
+ param: { id: cartId },
188
+ // @ts-ignore - Hono RPC type inference issue with query parameters
189
+ query: { limit: limit.toString() },
190
+ });
191
+ if (!res.ok) {
192
+ throw new Error(`Failed to fetch cart recommendations: ${res.statusText}`);
193
+ }
194
+ return res.json();
195
+ }
@@ -8,13 +8,27 @@ import { createAdminRpcClients } from '../../rpc-client';
8
8
  */
9
9
  export declare function useGetStats(params?: {
10
10
  brandId?: string;
11
+ period?: string;
11
12
  }, options?: Omit<UseQueryOptions<Awaited<ReturnType<Awaited<ReturnType<ReturnType<typeof createAdminRpcClients>['stats']['index']['$get']>>['json']>>, Error>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
12
13
  overview: {
13
14
  totalOrders: number;
15
+ totalOrdersChange: number;
16
+ totalOrdersPrevious: number;
14
17
  pendingOrders: number;
18
+ pendingOrdersChange: number;
19
+ pendingOrdersPrevious: number;
15
20
  shippedOrders: number;
21
+ shippedOrdersChange: number;
22
+ shippedOrdersPrevious: number;
16
23
  deliveredOrders: number;
17
- totalRevenue: number;
24
+ deliveredOrdersChange: number;
25
+ deliveredOrdersPrevious: number;
26
+ realizedRevenue: number;
27
+ realizedRevenueChange: number;
28
+ realizedRevenuePrevious: number;
29
+ unrealizedRevenue: number;
30
+ unrealizedRevenueChange: number;
31
+ unrealizedRevenuePrevious: number;
18
32
  };
19
33
  recentOrders: {
20
34
  subtotal: number;
@@ -11,7 +11,7 @@ import { useApiConfig } from '../useApiConfig';
11
11
  export function useGetStats(params, options) {
12
12
  const { baseURL, getAuthToken } = useApiConfig();
13
13
  return useQueryUnwrapped({
14
- queryKey: queryKeys.admin.stats.overview(params?.brandId),
14
+ queryKey: queryKeys.admin.stats.overview(params?.brandId, params?.period),
15
15
  queryFn: async () => {
16
16
  const token = await getAuthToken();
17
17
  const clients = createAdminRpcClients(baseURL);
@@ -20,6 +20,8 @@ export function useGetStats(params, options) {
20
20
  throw new Error(`Failed to fetch statistics: ${res.statusText}`);
21
21
  return res.json();
22
22
  },
23
+ staleTime: 0,
24
+ gcTime: 0,
23
25
  ...options,
24
26
  });
25
27
  }
@@ -5,7 +5,7 @@
5
5
  * providing end-to-end type safety without code generation.
6
6
  */
7
7
  import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
8
- import { fetchCart, updateCart, createCart, addCartItem, updateCartItem, removeCartItem, applyDiscount, removeDiscount, checkoutCart } from '../../fetchers/carts';
8
+ import { fetchCart, updateCart, createCart, addCartItem, updateCartItem, removeCartItem, applyDiscount, removeDiscount, checkoutCart, fetchCartRecommendations } from '../../fetchers/carts';
9
9
  /**
10
10
  * Hook to get cart by ID using RPC
11
11
  *
@@ -1353,6 +1353,7 @@ export declare function useAddCartItem(cartId: string, options?: UseMutationOpti
1353
1353
  fbp?: string;
1354
1354
  ttp?: string;
1355
1355
  ttclid?: string;
1356
+ refreshRecommendations?: boolean;
1356
1357
  }>): import("@tanstack/react-query").UseMutationResult<{
1357
1358
  id: string;
1358
1359
  brand: {
@@ -1612,6 +1613,7 @@ export declare function useAddCartItem(cartId: string, options?: UseMutationOpti
1612
1613
  fbp?: string;
1613
1614
  ttp?: string;
1614
1615
  ttclid?: string;
1616
+ refreshRecommendations?: boolean;
1615
1617
  }, unknown>;
1616
1618
  /**
1617
1619
  * Hook to update cart item quantity using RPC
@@ -2438,3 +2440,202 @@ export declare function useCheckoutCart(cartId: string, options?: UseMutationOpt
2438
2440
  ttp?: string;
2439
2441
  ttclid?: string;
2440
2442
  }, unknown>;
2443
+ /**
2444
+ * Hook to get recommended products for a cart using RPC
2445
+ *
2446
+ * @param cartId - Cart UUID
2447
+ * @param limit - Maximum number of recommendations (default: 6)
2448
+ * @param options - React Query options
2449
+ *
2450
+ * @example
2451
+ * ```tsx
2452
+ * const { data: recommendations, isLoading } = useGetCartRecommendations('cart-123', 6);
2453
+ * console.log(recommendations); // Array of products from same brand
2454
+ * ```
2455
+ */
2456
+ export declare function useGetCartRecommendations(cartId: string | null | undefined, limit: number, options?: Omit<UseQueryOptions<Awaited<ReturnType<typeof fetchCartRecommendations>>, Error>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
2457
+ brand: {
2458
+ createdAt: string;
2459
+ updatedAt: string;
2460
+ deletedAt: string;
2461
+ id: string;
2462
+ name: string;
2463
+ slug: string;
2464
+ logoUrl: string | null;
2465
+ siteUrl: string;
2466
+ domain: string;
2467
+ metaPixelId: string | null;
2468
+ tiktokPixelId: string | null;
2469
+ paystackPublicKey: string | null;
2470
+ paystackSecretKey: string | null;
2471
+ };
2472
+ variants: {
2473
+ createdAt: string;
2474
+ updatedAt: string;
2475
+ price: number;
2476
+ deletedAt: string;
2477
+ id: string;
2478
+ name: string | null;
2479
+ isActive: boolean;
2480
+ thumbnailUrl: string | null;
2481
+ productId: string;
2482
+ sku: string;
2483
+ trackInventory: boolean;
2484
+ lowStockThreshold: number | null;
2485
+ }[];
2486
+ id: string;
2487
+ name: string;
2488
+ slug: string;
2489
+ createdAt: string;
2490
+ updatedAt: string;
2491
+ deletedAt: string;
2492
+ brandId: string;
2493
+ isActive: boolean;
2494
+ description: string | null;
2495
+ thumbnailUrl: string | null;
2496
+ quantityDiscounts: string | number | boolean | {
2497
+ [x: string]: string | number | boolean | /*elided*/ any | {
2498
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2499
+ length: number;
2500
+ toString: never;
2501
+ toLocaleString: never;
2502
+ pop: never;
2503
+ push: never;
2504
+ concat: never;
2505
+ join: never;
2506
+ reverse: never;
2507
+ shift: never;
2508
+ slice: never;
2509
+ sort: never;
2510
+ splice: never;
2511
+ unshift: never;
2512
+ indexOf: never;
2513
+ lastIndexOf: never;
2514
+ every: never;
2515
+ some: never;
2516
+ forEach: never;
2517
+ map: never;
2518
+ filter: never;
2519
+ reduce: never;
2520
+ reduceRight: never;
2521
+ find: never;
2522
+ findIndex: never;
2523
+ fill: never;
2524
+ copyWithin: never;
2525
+ entries: never;
2526
+ keys: never;
2527
+ values: never;
2528
+ includes: never;
2529
+ flatMap: never;
2530
+ flat: never;
2531
+ [Symbol.iterator]: never;
2532
+ readonly [Symbol.unscopables]: {
2533
+ [x: number]: boolean;
2534
+ length?: boolean;
2535
+ toString?: boolean;
2536
+ toLocaleString?: boolean;
2537
+ pop?: boolean;
2538
+ push?: boolean;
2539
+ concat?: boolean;
2540
+ join?: boolean;
2541
+ reverse?: boolean;
2542
+ shift?: boolean;
2543
+ slice?: boolean;
2544
+ sort?: boolean;
2545
+ splice?: boolean;
2546
+ unshift?: boolean;
2547
+ indexOf?: boolean;
2548
+ lastIndexOf?: boolean;
2549
+ every?: boolean;
2550
+ some?: boolean;
2551
+ forEach?: boolean;
2552
+ map?: boolean;
2553
+ filter?: boolean;
2554
+ reduce?: boolean;
2555
+ reduceRight?: boolean;
2556
+ find?: boolean;
2557
+ findIndex?: boolean;
2558
+ fill?: boolean;
2559
+ copyWithin?: boolean;
2560
+ entries?: boolean;
2561
+ keys?: boolean;
2562
+ values?: boolean;
2563
+ includes?: boolean;
2564
+ flatMap?: boolean;
2565
+ flat?: boolean;
2566
+ };
2567
+ };
2568
+ } | {
2569
+ [x: number]: string | number | boolean | {
2570
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2571
+ } | /*elided*/ any;
2572
+ length: number;
2573
+ toString: never;
2574
+ toLocaleString: never;
2575
+ pop: never;
2576
+ push: never;
2577
+ concat: never;
2578
+ join: never;
2579
+ reverse: never;
2580
+ shift: never;
2581
+ slice: never;
2582
+ sort: never;
2583
+ splice: never;
2584
+ unshift: never;
2585
+ indexOf: never;
2586
+ lastIndexOf: never;
2587
+ every: never;
2588
+ some: never;
2589
+ forEach: never;
2590
+ map: never;
2591
+ filter: never;
2592
+ reduce: never;
2593
+ reduceRight: never;
2594
+ find: never;
2595
+ findIndex: never;
2596
+ fill: never;
2597
+ copyWithin: never;
2598
+ entries: never;
2599
+ keys: never;
2600
+ values: never;
2601
+ includes: never;
2602
+ flatMap: never;
2603
+ flat: never;
2604
+ [Symbol.iterator]: never;
2605
+ readonly [Symbol.unscopables]: {
2606
+ [x: number]: boolean;
2607
+ length?: boolean;
2608
+ toString?: boolean;
2609
+ toLocaleString?: boolean;
2610
+ pop?: boolean;
2611
+ push?: boolean;
2612
+ concat?: boolean;
2613
+ join?: boolean;
2614
+ reverse?: boolean;
2615
+ shift?: boolean;
2616
+ slice?: boolean;
2617
+ sort?: boolean;
2618
+ splice?: boolean;
2619
+ unshift?: boolean;
2620
+ indexOf?: boolean;
2621
+ lastIndexOf?: boolean;
2622
+ every?: boolean;
2623
+ some?: boolean;
2624
+ forEach?: boolean;
2625
+ map?: boolean;
2626
+ filter?: boolean;
2627
+ reduce?: boolean;
2628
+ reduceRight?: boolean;
2629
+ find?: boolean;
2630
+ findIndex?: boolean;
2631
+ fill?: boolean;
2632
+ copyWithin?: boolean;
2633
+ entries?: boolean;
2634
+ keys?: boolean;
2635
+ values?: boolean;
2636
+ includes?: boolean;
2637
+ flatMap?: boolean;
2638
+ flat?: boolean;
2639
+ };
2640
+ };
2641
+ }[], Error>;
@@ -7,7 +7,7 @@
7
7
  import { useMutation, useQueryClient } from '@tanstack/react-query';
8
8
  import { useQueryUnwrapped } from '../use-query-unwrapped';
9
9
  import { queryKeys } from '../../utils/query-keys';
10
- import { fetchCart, updateCart, createCart, addCartItem, updateCartItem, removeCartItem, applyDiscount, removeDiscount, checkoutCart, } from '../../fetchers/carts';
10
+ import { fetchCart, updateCart, createCart, addCartItem, updateCartItem, removeCartItem, applyDiscount, removeDiscount, checkoutCart, fetchCartRecommendations, } from '../../fetchers/carts';
11
11
  /**
12
12
  * Hook to get cart by ID using RPC
13
13
  *
@@ -129,8 +129,12 @@ export function useAddCartItem(cartId, options) {
129
129
  const queryClient = useQueryClient();
130
130
  return useMutation({
131
131
  mutationFn: (data) => addCartItem(cartId, data.sku, data.quantity, data.fbc, data.fbp, data.ttp, data.ttclid),
132
- onSuccess: () => {
132
+ onSuccess: (_, variables) => {
133
133
  queryClient.invalidateQueries({ queryKey: queryKeys.public.carts.detail(cartId) });
134
+ // Refresh recommendations only if cart is not visible (refreshRecommendations flag is true)
135
+ if (variables.refreshRecommendations) {
136
+ queryClient.invalidateQueries({ queryKey: queryKeys.public.carts.recommendations(cartId) });
137
+ }
134
138
  },
135
139
  ...options,
136
140
  });
@@ -175,6 +179,8 @@ export function useRemoveCartItem(cartId, options) {
175
179
  mutationFn: (itemId) => removeCartItem(cartId, itemId),
176
180
  onSuccess: () => {
177
181
  queryClient.invalidateQueries({ queryKey: queryKeys.public.carts.detail(cartId) });
182
+ // Refresh recommendations when item is removed
183
+ queryClient.invalidateQueries({ queryKey: queryKeys.public.carts.recommendations(cartId) });
178
184
  },
179
185
  ...options,
180
186
  });
@@ -211,3 +217,24 @@ export function useCheckoutCart(cartId, options) {
211
217
  ...options,
212
218
  });
213
219
  }
220
+ /**
221
+ * Hook to get recommended products for a cart using RPC
222
+ *
223
+ * @param cartId - Cart UUID
224
+ * @param limit - Maximum number of recommendations (default: 6)
225
+ * @param options - React Query options
226
+ *
227
+ * @example
228
+ * ```tsx
229
+ * const { data: recommendations, isLoading } = useGetCartRecommendations('cart-123', 6);
230
+ * console.log(recommendations); // Array of products from same brand
231
+ * ```
232
+ */
233
+ export function useGetCartRecommendations(cartId, limit, options) {
234
+ return useQueryUnwrapped({
235
+ queryKey: cartId ? queryKeys.public.carts.recommendations(cartId, limit) : ['public', 'carts', 'recommendations'],
236
+ queryFn: () => fetchCartRecommendations(cartId, limit),
237
+ enabled: !!cartId,
238
+ ...options,
239
+ });
240
+ }
@@ -2707,6 +2707,234 @@ export declare function createRpcClients(baseURL: string): {
2707
2707
  };
2708
2708
  }>;
2709
2709
  };
2710
+ } & {
2711
+ ":id": {
2712
+ recommendations: import("hono/client").ClientRequest<{
2713
+ $get: {
2714
+ input: {
2715
+ param: {
2716
+ id: string;
2717
+ };
2718
+ };
2719
+ output: {
2720
+ brand: {
2721
+ createdAt: string;
2722
+ updatedAt: string;
2723
+ deletedAt: string;
2724
+ id: string;
2725
+ name: string;
2726
+ slug: string;
2727
+ logoUrl: string | null;
2728
+ siteUrl: string;
2729
+ domain: string;
2730
+ metaPixelId: string | null;
2731
+ tiktokPixelId: string | null;
2732
+ paystackPublicKey: string | null;
2733
+ paystackSecretKey: string | null;
2734
+ };
2735
+ variants: {
2736
+ createdAt: string;
2737
+ updatedAt: string;
2738
+ price: number;
2739
+ deletedAt: string;
2740
+ id: string;
2741
+ name: string | null;
2742
+ isActive: boolean;
2743
+ thumbnailUrl: string | null;
2744
+ productId: string;
2745
+ sku: string;
2746
+ trackInventory: boolean;
2747
+ lowStockThreshold: number | null;
2748
+ }[];
2749
+ id: string;
2750
+ name: string;
2751
+ slug: string;
2752
+ createdAt: string;
2753
+ updatedAt: string;
2754
+ deletedAt: string;
2755
+ brandId: string;
2756
+ isActive: boolean;
2757
+ description: string | null;
2758
+ thumbnailUrl: string | null;
2759
+ quantityDiscounts: string | number | boolean | {
2760
+ [x: string]: string | number | boolean | /*elided*/ any | {
2761
+ [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2762
+ length: number;
2763
+ toString: never;
2764
+ toLocaleString: never;
2765
+ pop: never;
2766
+ push: never;
2767
+ concat: never;
2768
+ join: never;
2769
+ reverse: never;
2770
+ shift: never;
2771
+ slice: never;
2772
+ sort: never;
2773
+ splice: never;
2774
+ unshift: never;
2775
+ indexOf: never;
2776
+ lastIndexOf: never;
2777
+ every: never;
2778
+ some: never;
2779
+ forEach: never;
2780
+ map: never;
2781
+ filter: never;
2782
+ reduce: never;
2783
+ reduceRight: never;
2784
+ find: never;
2785
+ findIndex: never;
2786
+ fill: never;
2787
+ copyWithin: never;
2788
+ entries: never;
2789
+ keys: never;
2790
+ values: never;
2791
+ includes: never;
2792
+ flatMap: never;
2793
+ flat: never;
2794
+ [Symbol.iterator]: never;
2795
+ readonly [Symbol.unscopables]: {
2796
+ [x: number]: boolean;
2797
+ length?: boolean;
2798
+ toString?: boolean;
2799
+ toLocaleString?: boolean;
2800
+ pop?: boolean;
2801
+ push?: boolean;
2802
+ concat?: boolean;
2803
+ join?: boolean;
2804
+ reverse?: boolean;
2805
+ shift?: boolean;
2806
+ slice?: boolean;
2807
+ sort?: boolean;
2808
+ splice?: boolean;
2809
+ unshift?: boolean;
2810
+ indexOf?: boolean;
2811
+ lastIndexOf?: boolean;
2812
+ every?: boolean;
2813
+ some?: boolean;
2814
+ forEach?: boolean;
2815
+ map?: boolean;
2816
+ filter?: boolean;
2817
+ reduce?: boolean;
2818
+ reduceRight?: boolean;
2819
+ find?: boolean;
2820
+ findIndex?: boolean;
2821
+ fill?: boolean;
2822
+ copyWithin?: boolean;
2823
+ entries?: boolean;
2824
+ keys?: boolean;
2825
+ values?: boolean;
2826
+ includes?: boolean;
2827
+ flatMap?: boolean;
2828
+ flat?: boolean;
2829
+ };
2830
+ };
2831
+ } | {
2832
+ [x: number]: string | number | boolean | {
2833
+ [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
2834
+ } | /*elided*/ any;
2835
+ length: number;
2836
+ toString: never;
2837
+ toLocaleString: never;
2838
+ pop: never;
2839
+ push: never;
2840
+ concat: never;
2841
+ join: never;
2842
+ reverse: never;
2843
+ shift: never;
2844
+ slice: never;
2845
+ sort: never;
2846
+ splice: never;
2847
+ unshift: never;
2848
+ indexOf: never;
2849
+ lastIndexOf: never;
2850
+ every: never;
2851
+ some: never;
2852
+ forEach: never;
2853
+ map: never;
2854
+ filter: never;
2855
+ reduce: never;
2856
+ reduceRight: never;
2857
+ find: never;
2858
+ findIndex: never;
2859
+ fill: never;
2860
+ copyWithin: never;
2861
+ entries: never;
2862
+ keys: never;
2863
+ values: never;
2864
+ includes: never;
2865
+ flatMap: never;
2866
+ flat: never;
2867
+ [Symbol.iterator]: never;
2868
+ readonly [Symbol.unscopables]: {
2869
+ [x: number]: boolean;
2870
+ length?: boolean;
2871
+ toString?: boolean;
2872
+ toLocaleString?: boolean;
2873
+ pop?: boolean;
2874
+ push?: boolean;
2875
+ concat?: boolean;
2876
+ join?: boolean;
2877
+ reverse?: boolean;
2878
+ shift?: boolean;
2879
+ slice?: boolean;
2880
+ sort?: boolean;
2881
+ splice?: boolean;
2882
+ unshift?: boolean;
2883
+ indexOf?: boolean;
2884
+ lastIndexOf?: boolean;
2885
+ every?: boolean;
2886
+ some?: boolean;
2887
+ forEach?: boolean;
2888
+ map?: boolean;
2889
+ filter?: boolean;
2890
+ reduce?: boolean;
2891
+ reduceRight?: boolean;
2892
+ find?: boolean;
2893
+ findIndex?: boolean;
2894
+ fill?: boolean;
2895
+ copyWithin?: boolean;
2896
+ entries?: boolean;
2897
+ keys?: boolean;
2898
+ values?: boolean;
2899
+ includes?: boolean;
2900
+ flatMap?: boolean;
2901
+ flat?: boolean;
2902
+ };
2903
+ };
2904
+ }[];
2905
+ outputFormat: "json";
2906
+ status: 200;
2907
+ } | {
2908
+ input: {
2909
+ param: {
2910
+ id: string;
2911
+ };
2912
+ };
2913
+ output: {
2914
+ error: {
2915
+ code: string;
2916
+ message: string;
2917
+ };
2918
+ };
2919
+ outputFormat: "json";
2920
+ status: any;
2921
+ } | {
2922
+ input: {
2923
+ param: {
2924
+ id: string;
2925
+ };
2926
+ };
2927
+ output: {
2928
+ error: {
2929
+ code: string;
2930
+ message: any;
2931
+ };
2932
+ };
2933
+ outputFormat: "json";
2934
+ status: 500;
2935
+ };
2936
+ }>;
2937
+ };
2710
2938
  };
2711
2939
  orders: {
2712
2940
  ":id": {
@@ -8269,10 +8497,23 @@ export declare function createAdminRpcClients(baseURL: string): {
8269
8497
  output: {
8270
8498
  overview: {
8271
8499
  totalOrders: number;
8500
+ totalOrdersChange: number;
8501
+ totalOrdersPrevious: number;
8272
8502
  pendingOrders: number;
8503
+ pendingOrdersChange: number;
8504
+ pendingOrdersPrevious: number;
8273
8505
  shippedOrders: number;
8506
+ shippedOrdersChange: number;
8507
+ shippedOrdersPrevious: number;
8274
8508
  deliveredOrders: number;
8275
- totalRevenue: number;
8509
+ deliveredOrdersChange: number;
8510
+ deliveredOrdersPrevious: number;
8511
+ realizedRevenue: number;
8512
+ realizedRevenueChange: number;
8513
+ realizedRevenuePrevious: number;
8514
+ unrealizedRevenue: number;
8515
+ unrealizedRevenueChange: number;
8516
+ unrealizedRevenuePrevious: number;
8276
8517
  };
8277
8518
  recentOrders: {
8278
8519
  subtotal: number;
@@ -12,6 +12,7 @@ export declare const queryKeys: {
12
12
  carts: {
13
13
  all: readonly ["public", "carts"];
14
14
  detail: (id: string) => readonly ["public", "carts", string];
15
+ recommendations: (id: string, limit?: number) => readonly ["public", "carts", string, "recommendations", number] | readonly ["public", "carts", string, "recommendations"];
15
16
  };
16
17
  orders: {
17
18
  all: readonly ["public", "orders"];
@@ -74,7 +75,7 @@ export declare const queryKeys: {
74
75
  };
75
76
  stats: {
76
77
  all: readonly ["admin", "stats"];
77
- overview: (brandId?: string) => readonly ["admin", "stats", "overview", string];
78
+ overview: (brandId?: string, period?: string) => readonly ["admin", "stats", "overview", string, string];
78
79
  };
79
80
  abandonedCarts: {
80
81
  all: readonly ["admin", "abandoned-carts"];
@@ -13,6 +13,9 @@ export const queryKeys = {
13
13
  carts: {
14
14
  all: ['public', 'carts'],
15
15
  detail: (id) => ['public', 'carts', id],
16
+ recommendations: (id, limit) => limit !== undefined
17
+ ? ['public', 'carts', id, 'recommendations', limit]
18
+ : ['public', 'carts', id, 'recommendations'],
16
19
  },
17
20
  orders: {
18
21
  all: ['public', 'orders'],
@@ -76,7 +79,7 @@ export const queryKeys = {
76
79
  },
77
80
  stats: {
78
81
  all: ['admin', 'stats'],
79
- overview: (brandId) => ['admin', 'stats', 'overview', brandId],
82
+ overview: (brandId, period) => ['admin', 'stats', 'overview', brandId, period],
80
83
  },
81
84
  abandonedCarts: {
82
85
  all: ['admin', 'abandoned-carts'],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instockng/api-client",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "React Query hooks for OMS API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",