@instockng/api-client 1.0.9 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/dist/fetchers/brands.d.ts +1 -1
  2. package/dist/fetchers/carts.d.ts +85 -47
  3. package/dist/fetchers/delivery-zones.d.ts +2 -0
  4. package/dist/fetchers/orders.d.ts +26 -14
  5. package/dist/fetchers/products.d.ts +14 -6
  6. package/dist/hooks/admin/abandoned-carts.d.ts +18 -10
  7. package/dist/hooks/admin/brands.d.ts +4 -4
  8. package/dist/hooks/admin/customers.d.ts +13 -7
  9. package/dist/hooks/admin/delivery-zones.d.ts +23 -15
  10. package/dist/hooks/admin/discount-codes.d.ts +10 -10
  11. package/dist/hooks/admin/inventory.d.ts +4 -0
  12. package/dist/hooks/admin/orders.d.ts +78 -42
  13. package/dist/hooks/admin/products.d.ts +14 -6
  14. package/dist/hooks/admin/stats.d.ts +13 -7
  15. package/dist/hooks/admin/variants.d.ts +5 -5
  16. package/dist/hooks/admin/warehouses.d.ts +11 -7
  17. package/dist/hooks/public/brands.d.ts +1 -1
  18. package/dist/hooks/public/carts.d.ts +85 -47
  19. package/dist/hooks/public/delivery-zones.d.ts +2 -0
  20. package/dist/hooks/public/orders.d.ts +26 -14
  21. package/dist/hooks/public/products.d.ts +14 -6
  22. package/dist/rpc-client.d.ts +335 -187
  23. package/package.json +1 -1
  24. package/dist/apps/backend/src/generated/zod/index.d.ts +0 -1114
  25. package/dist/apps/backend/src/generated/zod/index.js +0 -670
  26. package/dist/apps/backend/src/http-app.d.ts +0 -40
  27. package/dist/apps/backend/src/http-app.js +0 -134
  28. package/dist/apps/backend/src/lib/brand-response.d.ts +0 -14
  29. package/dist/apps/backend/src/lib/brand-response.js +0 -8
  30. package/dist/apps/backend/src/lib/cart-helpers.d.ts +0 -282
  31. package/dist/apps/backend/src/lib/cart-helpers.js +0 -121
  32. package/dist/apps/backend/src/lib/cart-recovery.d.ts +0 -30
  33. package/dist/apps/backend/src/lib/cart-recovery.js +0 -147
  34. package/dist/apps/backend/src/lib/cart-response.d.ts +0 -121
  35. package/dist/apps/backend/src/lib/cart-response.js +0 -150
  36. package/dist/apps/backend/src/lib/clerk.d.ts +0 -18
  37. package/dist/apps/backend/src/lib/clerk.js +0 -190
  38. package/dist/apps/backend/src/lib/delivery-zone-response.d.ts +0 -64
  39. package/dist/apps/backend/src/lib/delivery-zone-response.js +0 -24
  40. package/dist/apps/backend/src/lib/discount-code-response.d.ts +0 -42
  41. package/dist/apps/backend/src/lib/discount-code-response.js +0 -19
  42. package/dist/apps/backend/src/lib/discount.d.ts +0 -20
  43. package/dist/apps/backend/src/lib/discount.js +0 -35
  44. package/dist/apps/backend/src/lib/inventory.d.ts +0 -26
  45. package/dist/apps/backend/src/lib/inventory.js +0 -160
  46. package/dist/apps/backend/src/lib/meta-capi.d.ts +0 -53
  47. package/dist/apps/backend/src/lib/meta-capi.js +0 -151
  48. package/dist/apps/backend/src/lib/openapi.d.ts +0 -36
  49. package/dist/apps/backend/src/lib/openapi.js +0 -69
  50. package/dist/apps/backend/src/lib/order-recovery.d.ts +0 -459
  51. package/dist/apps/backend/src/lib/order-recovery.js +0 -378
  52. package/dist/apps/backend/src/lib/order-response.d.ts +0 -138
  53. package/dist/apps/backend/src/lib/order-response.js +0 -61
  54. package/dist/apps/backend/src/lib/pricing.d.ts +0 -39
  55. package/dist/apps/backend/src/lib/pricing.js +0 -62
  56. package/dist/apps/backend/src/lib/prisma.d.ts +0 -9
  57. package/dist/apps/backend/src/lib/prisma.js +0 -30
  58. package/dist/apps/backend/src/lib/product-response.d.ts +0 -82
  59. package/dist/apps/backend/src/lib/product-response.js +0 -29
  60. package/dist/apps/backend/src/lib/sentry.d.ts +0 -48
  61. package/dist/apps/backend/src/lib/sentry.js +0 -180
  62. package/dist/apps/backend/src/lib/utils.d.ts +0 -32
  63. package/dist/apps/backend/src/lib/utils.js +0 -63
  64. package/dist/apps/backend/src/middleware/clerk-auth.d.ts +0 -8
  65. package/dist/apps/backend/src/middleware/clerk-auth.js +0 -89
  66. package/dist/apps/backend/src/middleware/cors.d.ts +0 -8
  67. package/dist/apps/backend/src/middleware/cors.js +0 -11
  68. package/dist/apps/backend/src/notifications/producers/meta-capi-producer.d.ts +0 -62
  69. package/dist/apps/backend/src/notifications/producers/meta-capi-producer.js +0 -180
  70. package/dist/apps/backend/src/notifications/producers/order-notification.d.ts +0 -9
  71. package/dist/apps/backend/src/notifications/producers/order-notification.js +0 -18
  72. package/dist/apps/backend/src/notifications/producers/prospect-recovery-notification.d.ts +0 -10
  73. package/dist/apps/backend/src/notifications/producers/prospect-recovery-notification.js +0 -11
  74. package/dist/apps/backend/src/routes/admin/abandoned-carts.d.ts +0 -613
  75. package/dist/apps/backend/src/routes/admin/abandoned-carts.js +0 -194
  76. package/dist/apps/backend/src/routes/admin/brands.d.ts +0 -175
  77. package/dist/apps/backend/src/routes/admin/brands.js +0 -118
  78. package/dist/apps/backend/src/routes/admin/customers.d.ts +0 -312
  79. package/dist/apps/backend/src/routes/admin/customers.js +0 -39
  80. package/dist/apps/backend/src/routes/admin/delivery-zones.d.ts +0 -446
  81. package/dist/apps/backend/src/routes/admin/delivery-zones.js +0 -300
  82. package/dist/apps/backend/src/routes/admin/discount-codes.d.ts +0 -478
  83. package/dist/apps/backend/src/routes/admin/discount-codes.js +0 -418
  84. package/dist/apps/backend/src/routes/admin/inventory.d.ts +0 -277
  85. package/dist/apps/backend/src/routes/admin/inventory.js +0 -199
  86. package/dist/apps/backend/src/routes/admin/orders.d.ts +0 -1804
  87. package/dist/apps/backend/src/routes/admin/orders.js +0 -552
  88. package/dist/apps/backend/src/routes/admin/products.d.ts +0 -876
  89. package/dist/apps/backend/src/routes/admin/products.js +0 -126
  90. package/dist/apps/backend/src/routes/admin/stats.d.ts +0 -294
  91. package/dist/apps/backend/src/routes/admin/stats.js +0 -55
  92. package/dist/apps/backend/src/routes/admin/variants.d.ts +0 -239
  93. package/dist/apps/backend/src/routes/admin/variants.js +0 -197
  94. package/dist/apps/backend/src/routes/admin/warehouses.d.ts +0 -377
  95. package/dist/apps/backend/src/routes/admin/warehouses.js +0 -123
  96. package/dist/apps/backend/src/routes/public/brands.d.ts +0 -40
  97. package/dist/apps/backend/src/routes/public/brands.js +0 -38
  98. package/dist/apps/backend/src/routes/public/carts.d.ts +0 -2693
  99. package/dist/apps/backend/src/routes/public/carts.js +0 -778
  100. package/dist/apps/backend/src/routes/public/delivery-zones.d.ts +0 -37
  101. package/dist/apps/backend/src/routes/public/delivery-zones.js +0 -64
  102. package/dist/apps/backend/src/routes/public/orders.d.ts +0 -617
  103. package/dist/apps/backend/src/routes/public/orders.js +0 -184
  104. package/dist/apps/backend/src/routes/public/products.d.ts +0 -457
  105. package/dist/apps/backend/src/routes/public/products.js +0 -133
  106. package/dist/apps/backend/src/types/index.d.ts +0 -43
  107. package/dist/apps/backend/src/types/index.js +0 -2
  108. package/dist/apps/backend/src/validators/brand.d.ts +0 -17
  109. package/dist/apps/backend/src/validators/brand.js +0 -15
  110. package/dist/apps/backend/src/validators/delivery-zone.d.ts +0 -35
  111. package/dist/apps/backend/src/validators/delivery-zone.js +0 -55
  112. package/dist/apps/backend/src/validators/discount-code.d.ts +0 -74
  113. package/dist/apps/backend/src/validators/discount-code.js +0 -50
  114. package/dist/apps/backend/src/validators/inventory.d.ts +0 -20
  115. package/dist/apps/backend/src/validators/inventory.js +0 -15
  116. package/dist/apps/backend/src/validators/order.d.ts +0 -58
  117. package/dist/apps/backend/src/validators/order.js +0 -62
  118. package/dist/apps/backend/src/validators/product.d.ts +0 -18
  119. package/dist/apps/backend/src/validators/product.js +0 -19
  120. package/dist/apps/backend/src/validators/variant.d.ts +0 -19
  121. package/dist/apps/backend/src/validators/variant.js +0 -19
  122. package/dist/apps/backend/src/validators/warehouse.d.ts +0 -15
  123. package/dist/apps/backend/src/validators/warehouse.js +0 -15
  124. package/dist/packages/api-client/src/backend-types.d.ts +0 -10
  125. package/dist/packages/api-client/src/backend-types.js +0 -10
  126. package/dist/packages/api-client/src/client.d.ts +0 -20
  127. package/dist/packages/api-client/src/client.js +0 -40
  128. package/dist/packages/api-client/src/enum-types.d.ts +0 -8
  129. package/dist/packages/api-client/src/enum-types.js +0 -5
  130. package/dist/packages/api-client/src/fetchers/brands.d.ts +0 -25
  131. package/dist/packages/api-client/src/fetchers/brands.js +0 -26
  132. package/dist/packages/api-client/src/fetchers/carts.d.ts +0 -2373
  133. package/dist/packages/api-client/src/fetchers/carts.js +0 -174
  134. package/dist/packages/api-client/src/fetchers/delivery-zones.d.ts +0 -30
  135. package/dist/packages/api-client/src/fetchers/delivery-zones.js +0 -26
  136. package/dist/packages/api-client/src/fetchers/index.d.ts +0 -22
  137. package/dist/packages/api-client/src/fetchers/index.js +0 -22
  138. package/dist/packages/api-client/src/fetchers/orders.d.ts +0 -552
  139. package/dist/packages/api-client/src/fetchers/orders.js +0 -44
  140. package/dist/packages/api-client/src/fetchers/products.d.ts +0 -394
  141. package/dist/packages/api-client/src/fetchers/products.js +0 -42
  142. package/dist/packages/api-client/src/hooks/admin/abandoned-carts.d.ts +0 -543
  143. package/dist/packages/api-client/src/hooks/admin/abandoned-carts.js +0 -83
  144. package/dist/packages/api-client/src/hooks/admin/brands.d.ts +0 -79
  145. package/dist/packages/api-client/src/hooks/admin/brands.js +0 -108
  146. package/dist/packages/api-client/src/hooks/admin/customers.d.ts +0 -284
  147. package/dist/packages/api-client/src/hooks/admin/customers.js +0 -26
  148. package/dist/packages/api-client/src/hooks/admin/delivery-zones.d.ts +0 -278
  149. package/dist/packages/api-client/src/hooks/admin/delivery-zones.js +0 -176
  150. package/dist/packages/api-client/src/hooks/admin/discount-codes.d.ts +0 -299
  151. package/dist/packages/api-client/src/hooks/admin/discount-codes.js +0 -165
  152. package/dist/packages/api-client/src/hooks/admin/index.d.ts +0 -16
  153. package/dist/packages/api-client/src/hooks/admin/index.js +0 -16
  154. package/dist/packages/api-client/src/hooks/admin/inventory.d.ts +0 -228
  155. package/dist/packages/api-client/src/hooks/admin/inventory.js +0 -107
  156. package/dist/packages/api-client/src/hooks/admin/orders.d.ts +0 -1698
  157. package/dist/packages/api-client/src/hooks/admin/orders.js +0 -178
  158. package/dist/packages/api-client/src/hooks/admin/products.d.ts +0 -382
  159. package/dist/packages/api-client/src/hooks/admin/products.js +0 -89
  160. package/dist/packages/api-client/src/hooks/admin/stats.d.ts +0 -283
  161. package/dist/packages/api-client/src/hooks/admin/stats.js +0 -25
  162. package/dist/packages/api-client/src/hooks/admin/variants.d.ts +0 -115
  163. package/dist/packages/api-client/src/hooks/admin/variants.js +0 -127
  164. package/dist/packages/api-client/src/hooks/admin/warehouses.d.ts +0 -281
  165. package/dist/packages/api-client/src/hooks/admin/warehouses.js +0 -108
  166. package/dist/packages/api-client/src/hooks/public/brands.d.ts +0 -33
  167. package/dist/packages/api-client/src/hooks/public/brands.js +0 -30
  168. package/dist/packages/api-client/src/hooks/public/carts.d.ts +0 -2443
  169. package/dist/packages/api-client/src/hooks/public/carts.js +0 -213
  170. package/dist/packages/api-client/src/hooks/public/delivery-zones.d.ts +0 -36
  171. package/dist/packages/api-client/src/hooks/public/delivery-zones.js +0 -28
  172. package/dist/packages/api-client/src/hooks/public/index.d.ts +0 -10
  173. package/dist/packages/api-client/src/hooks/public/index.js +0 -10
  174. package/dist/packages/api-client/src/hooks/public/orders.d.ts +0 -571
  175. package/dist/packages/api-client/src/hooks/public/orders.js +0 -50
  176. package/dist/packages/api-client/src/hooks/public/products.d.ts +0 -406
  177. package/dist/packages/api-client/src/hooks/public/products.js +0 -47
  178. package/dist/packages/api-client/src/hooks/use-query-unwrapped.d.ts +0 -20
  179. package/dist/packages/api-client/src/hooks/use-query-unwrapped.js +0 -22
  180. package/dist/packages/api-client/src/hooks/useApiConfig.d.ts +0 -12
  181. package/dist/packages/api-client/src/hooks/useApiConfig.js +0 -14
  182. package/dist/packages/api-client/src/index.d.ts +0 -20
  183. package/dist/packages/api-client/src/index.js +0 -25
  184. package/dist/packages/api-client/src/provider.d.ts +0 -36
  185. package/dist/packages/api-client/src/provider.js +0 -54
  186. package/dist/packages/api-client/src/rpc-client.d.ts +0 -9755
  187. package/dist/packages/api-client/src/rpc-client.js +0 -78
  188. package/dist/packages/api-client/src/rpc-types.d.ts +0 -76
  189. package/dist/packages/api-client/src/rpc-types.js +0 -7
  190. package/dist/packages/api-client/src/types.d.ts +0 -34
  191. package/dist/packages/api-client/src/types.js +0 -16
  192. package/dist/packages/api-client/src/utils/query-keys.d.ts +0 -106
  193. package/dist/packages/api-client/src/utils/query-keys.js +0 -108
@@ -1,178 +0,0 @@
1
- /**
2
- * Type-safe admin RPC hooks for order management
3
- *
4
- * These hooks use Hono RPC client with types directly from the backend,
5
- * providing end-to-end type safety without code generation.
6
- */
7
- import { useMutation, useQueryClient } from '@tanstack/react-query';
8
- import { useQueryUnwrapped } from '../use-query-unwrapped';
9
- import { createAdminRpcClients, authHeaders } from '../../rpc-client';
10
- import { queryKeys } from '../../utils/query-keys';
11
- import { useApiConfig } from '../useApiConfig';
12
- /**
13
- * Hook to list all orders with pagination using admin RPC
14
- *
15
- * @param filters - Query parameters for filtering orders
16
- * @param options - React Query options
17
- *
18
- * @example
19
- * ```tsx
20
- * const { data: orders, isLoading } = useListOrders({ search: 'john', page: 1 });
21
- * ```
22
- */
23
- export function useListOrders(filters, options) {
24
- const { baseURL, getAuthToken } = useApiConfig();
25
- return useQueryUnwrapped({
26
- queryKey: queryKeys.admin.orders.list(filters),
27
- queryFn: async () => {
28
- const token = await getAuthToken();
29
- const clients = createAdminRpcClients(baseURL);
30
- // Clean undefined values from filters
31
- const cleanFilters = filters ? Object.fromEntries(Object.entries(filters).filter(([_, v]) => v !== undefined)) : undefined;
32
- const res = await clients.orders.index.$get({ query: cleanFilters }, authHeaders(token));
33
- if (!res.ok) {
34
- throw new Error(`Failed to fetch orders: ${res.statusText}`);
35
- }
36
- return res.json();
37
- },
38
- ...options,
39
- });
40
- }
41
- /**
42
- * Hook to get order by ID using admin RPC
43
- *
44
- * @param orderId - Order UUID
45
- * @param options - React Query options
46
- *
47
- * @example
48
- * ```tsx
49
- * const { data: order } = useGetOrder('order-123');
50
- * ```
51
- */
52
- export function useGetOrder(orderId, options) {
53
- const { baseURL, getAuthToken } = useApiConfig();
54
- return useQueryUnwrapped({
55
- queryKey: queryKeys.admin.orders.detail(orderId),
56
- queryFn: async () => {
57
- const token = await getAuthToken();
58
- const clients = createAdminRpcClients(baseURL);
59
- const res = await clients.orders[':id'].$get({ param: { id: orderId } }, authHeaders(token));
60
- if (!res.ok) {
61
- throw new Error(`Failed to fetch order: ${res.statusText}`);
62
- }
63
- return res.json();
64
- },
65
- ...options,
66
- });
67
- }
68
- /**
69
- * Hook to create a new order using admin RPC
70
- *
71
- * @param options - React Query mutation options
72
- *
73
- * @example
74
- * ```tsx
75
- * const createOrder = useCreateOrder();
76
- * createOrder.mutate({
77
- * brandSlug: 'my-brand',
78
- * items: [{ sku: 'SKU-001', quantity: 2 }],
79
- * // ... other order fields
80
- * });
81
- * ```
82
- */
83
- export function useCreateOrder(options) {
84
- const { baseURL, getAuthToken } = useApiConfig();
85
- const queryClient = useQueryClient();
86
- return useMutation({
87
- mutationFn: async (data) => {
88
- const token = await getAuthToken();
89
- const clients = createAdminRpcClients(baseURL);
90
- const res = await clients.orders.index.$post({ json: data }, authHeaders(token));
91
- if (!res.ok) {
92
- throw new Error(`Failed to create order: ${res.statusText}`);
93
- }
94
- return res.json();
95
- },
96
- onSuccess: () => {
97
- queryClient.invalidateQueries({ queryKey: queryKeys.admin.orders.all });
98
- },
99
- ...options,
100
- });
101
- }
102
- /**
103
- * Hook to update an order using admin RPC
104
- *
105
- * @param orderId - Order UUID
106
- * @param options - React Query mutation options
107
- */
108
- export function useUpdateOrder(orderId, options) {
109
- const { baseURL, getAuthToken } = useApiConfig();
110
- const queryClient = useQueryClient();
111
- return useMutation({
112
- mutationFn: async (data) => {
113
- const token = await getAuthToken();
114
- const clients = createAdminRpcClients(baseURL);
115
- const res = await clients.orders[':id'].$patch({ param: { id: orderId }, json: data }, authHeaders(token));
116
- if (!res.ok) {
117
- throw new Error(`Failed to update order: ${res.statusText}`);
118
- }
119
- return res.json();
120
- },
121
- onSuccess: () => {
122
- queryClient.invalidateQueries({ queryKey: queryKeys.admin.orders.detail(orderId) });
123
- queryClient.invalidateQueries({ queryKey: queryKeys.admin.orders.all });
124
- },
125
- ...options,
126
- });
127
- }
128
- /**
129
- * Hook to update order status using admin RPC
130
- *
131
- * @param orderId - Order UUID
132
- * @param options - React Query mutation options
133
- */
134
- export function useUpdateOrderStatus(orderId, options) {
135
- const { baseURL, getAuthToken } = useApiConfig();
136
- const queryClient = useQueryClient();
137
- return useMutation({
138
- mutationFn: async (data) => {
139
- const token = await getAuthToken();
140
- const clients = createAdminRpcClients(baseURL);
141
- const res = await clients.orders[':id'].status.$patch({ param: { id: orderId }, json: data }, authHeaders(token));
142
- if (!res.ok) {
143
- throw new Error(`Failed to update order status: ${res.statusText}`);
144
- }
145
- return res.json();
146
- },
147
- onSuccess: () => {
148
- queryClient.invalidateQueries({ queryKey: queryKeys.admin.orders.detail(orderId) });
149
- queryClient.invalidateQueries({ queryKey: queryKeys.admin.orders.all });
150
- },
151
- ...options,
152
- });
153
- }
154
- /**
155
- * Hook to delete an order using admin RPC
156
- *
157
- * @param orderId - Order UUID
158
- * @param options - React Query mutation options
159
- */
160
- export function useDeleteOrder(orderId, options) {
161
- const { baseURL, getAuthToken } = useApiConfig();
162
- const queryClient = useQueryClient();
163
- return useMutation({
164
- mutationFn: async () => {
165
- const token = await getAuthToken();
166
- const clients = createAdminRpcClients(baseURL);
167
- const res = await clients.orders[':id'].$delete({ param: { id: orderId } }, authHeaders(token));
168
- if (!res.ok) {
169
- throw new Error(`Failed to delete order: ${res.statusText}`);
170
- }
171
- return res.json();
172
- },
173
- onSuccess: () => {
174
- queryClient.invalidateQueries({ queryKey: queryKeys.admin.orders.all });
175
- },
176
- ...options,
177
- });
178
- }
@@ -1,382 +0,0 @@
1
- /**
2
- * Type-safe admin RPC hooks for product management
3
- */
4
- import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
5
- import { createAdminRpcClients } from '../../rpc-client';
6
- export declare function useListProducts(brandId?: string, options?: Omit<UseQueryOptions<Awaited<ReturnType<Awaited<ReturnType<ReturnType<typeof createAdminRpcClients>['products']['index']['$get']>>['json']>>, Error>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
7
- brand: {
8
- createdAt: string;
9
- updatedAt: string;
10
- deletedAt: string;
11
- id: string;
12
- name: string;
13
- slug: string;
14
- logoUrl: string | null;
15
- siteUrl: string;
16
- domain: string;
17
- metaPixelId: string | null;
18
- };
19
- variants: {
20
- createdAt: string;
21
- updatedAt: string;
22
- price: number;
23
- deletedAt: string;
24
- id: string;
25
- name: string | null;
26
- isActive: boolean;
27
- thumbnailUrl: string | null;
28
- productId: string;
29
- sku: string;
30
- trackInventory: boolean;
31
- lowStockThreshold: number | null;
32
- }[];
33
- id: string;
34
- name: string;
35
- slug: string;
36
- createdAt: string;
37
- updatedAt: string;
38
- deletedAt: string;
39
- brandId: string;
40
- isActive: boolean;
41
- description: string | null;
42
- thumbnailUrl: string | null;
43
- quantityDiscounts: string | number | boolean | {
44
- [x: string]: string | number | boolean | /*elided*/ any | {
45
- [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
46
- length: number;
47
- toString: never;
48
- toLocaleString: never;
49
- pop: never;
50
- push: never;
51
- concat: never;
52
- join: never;
53
- reverse: never;
54
- shift: never;
55
- slice: never;
56
- sort: never;
57
- splice: never;
58
- unshift: never;
59
- indexOf: never;
60
- lastIndexOf: never;
61
- every: never;
62
- some: never;
63
- forEach: never;
64
- map: never;
65
- filter: never;
66
- reduce: never;
67
- reduceRight: never;
68
- find: never;
69
- findIndex: never;
70
- fill: never;
71
- copyWithin: never;
72
- entries: never;
73
- keys: never;
74
- values: never;
75
- includes: never;
76
- flatMap: never;
77
- flat: never;
78
- [Symbol.iterator]: never;
79
- readonly [Symbol.unscopables]: {
80
- [x: number]: boolean;
81
- length?: boolean;
82
- toString?: boolean;
83
- toLocaleString?: boolean;
84
- pop?: boolean;
85
- push?: boolean;
86
- concat?: boolean;
87
- join?: boolean;
88
- reverse?: boolean;
89
- shift?: boolean;
90
- slice?: boolean;
91
- sort?: boolean;
92
- splice?: boolean;
93
- unshift?: boolean;
94
- indexOf?: boolean;
95
- lastIndexOf?: boolean;
96
- every?: boolean;
97
- some?: boolean;
98
- forEach?: boolean;
99
- map?: boolean;
100
- filter?: boolean;
101
- reduce?: boolean;
102
- reduceRight?: boolean;
103
- find?: boolean;
104
- findIndex?: boolean;
105
- fill?: boolean;
106
- copyWithin?: boolean;
107
- entries?: boolean;
108
- keys?: boolean;
109
- values?: boolean;
110
- includes?: boolean;
111
- flatMap?: boolean;
112
- flat?: boolean;
113
- at?: boolean;
114
- };
115
- at: never;
116
- };
117
- } | {
118
- [x: number]: string | number | boolean | {
119
- [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
120
- } | /*elided*/ any;
121
- length: number;
122
- toString: never;
123
- toLocaleString: never;
124
- pop: never;
125
- push: never;
126
- concat: never;
127
- join: never;
128
- reverse: never;
129
- shift: never;
130
- slice: never;
131
- sort: never;
132
- splice: never;
133
- unshift: never;
134
- indexOf: never;
135
- lastIndexOf: never;
136
- every: never;
137
- some: never;
138
- forEach: never;
139
- map: never;
140
- filter: never;
141
- reduce: never;
142
- reduceRight: never;
143
- find: never;
144
- findIndex: never;
145
- fill: never;
146
- copyWithin: never;
147
- entries: never;
148
- keys: never;
149
- values: never;
150
- includes: never;
151
- flatMap: never;
152
- flat: never;
153
- [Symbol.iterator]: never;
154
- readonly [Symbol.unscopables]: {
155
- [x: number]: boolean;
156
- length?: boolean;
157
- toString?: boolean;
158
- toLocaleString?: boolean;
159
- pop?: boolean;
160
- push?: boolean;
161
- concat?: boolean;
162
- join?: boolean;
163
- reverse?: boolean;
164
- shift?: boolean;
165
- slice?: boolean;
166
- sort?: boolean;
167
- splice?: boolean;
168
- unshift?: boolean;
169
- indexOf?: boolean;
170
- lastIndexOf?: boolean;
171
- every?: boolean;
172
- some?: boolean;
173
- forEach?: boolean;
174
- map?: boolean;
175
- filter?: boolean;
176
- reduce?: boolean;
177
- reduceRight?: boolean;
178
- find?: boolean;
179
- findIndex?: boolean;
180
- fill?: boolean;
181
- copyWithin?: boolean;
182
- entries?: boolean;
183
- keys?: boolean;
184
- values?: boolean;
185
- includes?: boolean;
186
- flatMap?: boolean;
187
- flat?: boolean;
188
- at?: boolean;
189
- };
190
- at: never;
191
- };
192
- }[], Error>;
193
- export declare function useGetProduct(productId: string, options?: Omit<UseQueryOptions<Awaited<ReturnType<Awaited<ReturnType<ReturnType<typeof createAdminRpcClients>['products'][':id']['$get']>>['json']>>, Error>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
194
- brand: {
195
- createdAt: string;
196
- updatedAt: string;
197
- deletedAt: string;
198
- id: string;
199
- name: string;
200
- slug: string;
201
- logoUrl: string | null;
202
- siteUrl: string;
203
- domain: string;
204
- metaPixelId: string | null;
205
- };
206
- variants: {
207
- createdAt: string;
208
- updatedAt: string;
209
- price: number;
210
- deletedAt: string;
211
- id: string;
212
- name: string | null;
213
- isActive: boolean;
214
- thumbnailUrl: string | null;
215
- productId: string;
216
- sku: string;
217
- trackInventory: boolean;
218
- lowStockThreshold: number | null;
219
- }[];
220
- id: string;
221
- name: string;
222
- slug: string;
223
- createdAt: string;
224
- updatedAt: string;
225
- deletedAt: string;
226
- brandId: string;
227
- isActive: boolean;
228
- description: string | null;
229
- thumbnailUrl: string | null;
230
- quantityDiscounts: string | number | boolean | {
231
- [x: string]: string | number | boolean | /*elided*/ any | {
232
- [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
233
- length: number;
234
- toString: never;
235
- toLocaleString: never;
236
- pop: never;
237
- push: never;
238
- concat: never;
239
- join: never;
240
- reverse: never;
241
- shift: never;
242
- slice: never;
243
- sort: never;
244
- splice: never;
245
- unshift: never;
246
- indexOf: never;
247
- lastIndexOf: never;
248
- every: never;
249
- some: never;
250
- forEach: never;
251
- map: never;
252
- filter: never;
253
- reduce: never;
254
- reduceRight: never;
255
- find: never;
256
- findIndex: never;
257
- fill: never;
258
- copyWithin: never;
259
- entries: never;
260
- keys: never;
261
- values: never;
262
- includes: never;
263
- flatMap: never;
264
- flat: never;
265
- [Symbol.iterator]: never;
266
- readonly [Symbol.unscopables]: {
267
- [x: number]: boolean;
268
- length?: boolean;
269
- toString?: boolean;
270
- toLocaleString?: boolean;
271
- pop?: boolean;
272
- push?: boolean;
273
- concat?: boolean;
274
- join?: boolean;
275
- reverse?: boolean;
276
- shift?: boolean;
277
- slice?: boolean;
278
- sort?: boolean;
279
- splice?: boolean;
280
- unshift?: boolean;
281
- indexOf?: boolean;
282
- lastIndexOf?: boolean;
283
- every?: boolean;
284
- some?: boolean;
285
- forEach?: boolean;
286
- map?: boolean;
287
- filter?: boolean;
288
- reduce?: boolean;
289
- reduceRight?: boolean;
290
- find?: boolean;
291
- findIndex?: boolean;
292
- fill?: boolean;
293
- copyWithin?: boolean;
294
- entries?: boolean;
295
- keys?: boolean;
296
- values?: boolean;
297
- includes?: boolean;
298
- flatMap?: boolean;
299
- flat?: boolean;
300
- at?: boolean;
301
- };
302
- at: never;
303
- };
304
- } | {
305
- [x: number]: string | number | boolean | {
306
- [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
307
- } | /*elided*/ any;
308
- length: number;
309
- toString: never;
310
- toLocaleString: never;
311
- pop: never;
312
- push: never;
313
- concat: never;
314
- join: never;
315
- reverse: never;
316
- shift: never;
317
- slice: never;
318
- sort: never;
319
- splice: never;
320
- unshift: never;
321
- indexOf: never;
322
- lastIndexOf: never;
323
- every: never;
324
- some: never;
325
- forEach: never;
326
- map: never;
327
- filter: never;
328
- reduce: never;
329
- reduceRight: never;
330
- find: never;
331
- findIndex: never;
332
- fill: never;
333
- copyWithin: never;
334
- entries: never;
335
- keys: never;
336
- values: never;
337
- includes: never;
338
- flatMap: never;
339
- flat: never;
340
- [Symbol.iterator]: never;
341
- readonly [Symbol.unscopables]: {
342
- [x: number]: boolean;
343
- length?: boolean;
344
- toString?: boolean;
345
- toLocaleString?: boolean;
346
- pop?: boolean;
347
- push?: boolean;
348
- concat?: boolean;
349
- join?: boolean;
350
- reverse?: boolean;
351
- shift?: boolean;
352
- slice?: boolean;
353
- sort?: boolean;
354
- splice?: boolean;
355
- unshift?: boolean;
356
- indexOf?: boolean;
357
- lastIndexOf?: boolean;
358
- every?: boolean;
359
- some?: boolean;
360
- forEach?: boolean;
361
- map?: boolean;
362
- filter?: boolean;
363
- reduce?: boolean;
364
- reduceRight?: boolean;
365
- find?: boolean;
366
- findIndex?: boolean;
367
- fill?: boolean;
368
- copyWithin?: boolean;
369
- entries?: boolean;
370
- keys?: boolean;
371
- values?: boolean;
372
- includes?: boolean;
373
- flatMap?: boolean;
374
- flat?: boolean;
375
- at?: boolean;
376
- };
377
- at: never;
378
- };
379
- }, Error>;
380
- export declare function useCreateProduct(options?: UseMutationOptions<any, Error, any>): import("@tanstack/react-query").UseMutationResult<any, Error, any, unknown>;
381
- export declare function useUpdateProduct(productId: string, options?: UseMutationOptions<any, Error, any>): import("@tanstack/react-query").UseMutationResult<any, Error, any, unknown>;
382
- export declare function useDeleteProduct(productId: string, options?: UseMutationOptions<any, Error, void>): import("@tanstack/react-query").UseMutationResult<any, Error, void, unknown>;
@@ -1,89 +0,0 @@
1
- /**
2
- * Type-safe admin RPC hooks for product management
3
- */
4
- import { useMutation, useQueryClient } from '@tanstack/react-query';
5
- import { useQueryUnwrapped } from '../use-query-unwrapped';
6
- import { createAdminRpcClients, authHeaders } from '../../rpc-client';
7
- import { queryKeys } from '../../utils/query-keys';
8
- import { useApiConfig } from '../useApiConfig';
9
- export function useListProducts(brandId, options) {
10
- const { baseURL, getAuthToken } = useApiConfig();
11
- return useQueryUnwrapped({
12
- queryKey: queryKeys.admin.products.list(brandId),
13
- queryFn: async () => {
14
- const token = await getAuthToken();
15
- const clients = createAdminRpcClients(baseURL);
16
- const res = await clients.products.index.$get(brandId ? { query: { brandId } } : {}, authHeaders(token));
17
- if (!res.ok)
18
- throw new Error(`Failed to fetch products: ${res.statusText}`);
19
- return res.json();
20
- },
21
- ...options,
22
- });
23
- }
24
- export function useGetProduct(productId, options) {
25
- const { baseURL, getAuthToken } = useApiConfig();
26
- return useQueryUnwrapped({
27
- queryKey: queryKeys.admin.products.detail(productId),
28
- queryFn: async () => {
29
- const token = await getAuthToken();
30
- const clients = createAdminRpcClients(baseURL);
31
- const res = await clients.products[':id'].$get({ param: { id: productId } }, authHeaders(token));
32
- if (!res.ok)
33
- throw new Error(`Failed to fetch product: ${res.statusText}`);
34
- return res.json();
35
- },
36
- ...options,
37
- });
38
- }
39
- export function useCreateProduct(options) {
40
- const { baseURL, getAuthToken } = useApiConfig();
41
- const queryClient = useQueryClient();
42
- return useMutation({
43
- mutationFn: async (data) => {
44
- const token = await getAuthToken();
45
- const clients = createAdminRpcClients(baseURL);
46
- const res = await clients.products.index.$post({ json: data }, authHeaders(token));
47
- if (!res.ok)
48
- throw new Error(`Failed to create product: ${res.statusText}`);
49
- return res.json();
50
- },
51
- onSuccess: () => queryClient.invalidateQueries({ queryKey: queryKeys.admin.products.all }),
52
- ...options,
53
- });
54
- }
55
- export function useUpdateProduct(productId, options) {
56
- const { baseURL, getAuthToken } = useApiConfig();
57
- const queryClient = useQueryClient();
58
- return useMutation({
59
- mutationFn: async (data) => {
60
- const token = await getAuthToken();
61
- const clients = createAdminRpcClients(baseURL);
62
- const res = await clients.products[':id'].$patch({ param: { id: productId }, json: data }, authHeaders(token));
63
- if (!res.ok)
64
- throw new Error(`Failed to update product: ${res.statusText}`);
65
- return res.json();
66
- },
67
- onSuccess: () => {
68
- queryClient.invalidateQueries({ queryKey: queryKeys.admin.products.detail(productId) });
69
- queryClient.invalidateQueries({ queryKey: queryKeys.admin.products.all });
70
- },
71
- ...options,
72
- });
73
- }
74
- export function useDeleteProduct(productId, options) {
75
- const { baseURL, getAuthToken } = useApiConfig();
76
- const queryClient = useQueryClient();
77
- return useMutation({
78
- mutationFn: async () => {
79
- const token = await getAuthToken();
80
- const clients = createAdminRpcClients(baseURL);
81
- const res = await clients.products[':id'].$delete({ param: { id: productId } }, authHeaders(token));
82
- if (!res.ok)
83
- throw new Error(`Failed to delete product: ${res.statusText}`);
84
- return res.json();
85
- },
86
- onSuccess: () => queryClient.invalidateQueries({ queryKey: queryKeys.admin.products.all }),
87
- ...options,
88
- });
89
- }