@instockng/api-client 1.0.9 → 1.0.11

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 (117) hide show
  1. package/dist/apps/backend/src/lib/brand-response.d.ts +2 -0
  2. package/dist/apps/backend/src/lib/cart-helpers.d.ts +4 -0
  3. package/dist/apps/backend/src/lib/cart-response.d.ts +2 -0
  4. package/dist/apps/backend/src/lib/delivery-zone-response.d.ts +2 -0
  5. package/dist/apps/backend/src/lib/discount-code-response.d.ts +2 -0
  6. package/dist/apps/backend/src/lib/order-recovery.d.ts +6 -0
  7. package/dist/apps/backend/src/lib/order-response.d.ts +2 -0
  8. package/dist/apps/backend/src/lib/product-response.d.ts +2 -0
  9. package/dist/apps/backend/src/routes/admin/abandoned-carts.d.ts +4 -8
  10. package/dist/apps/backend/src/routes/admin/brands.d.ts +8 -0
  11. package/dist/apps/backend/src/routes/admin/customers.d.ts +2 -4
  12. package/dist/apps/backend/src/routes/admin/delivery-zones.d.ts +8 -0
  13. package/dist/apps/backend/src/routes/admin/discount-codes.d.ts +10 -0
  14. package/dist/apps/backend/src/routes/admin/inventory.d.ts +0 -4
  15. package/dist/apps/backend/src/routes/admin/orders.d.ts +12 -24
  16. package/dist/apps/backend/src/routes/admin/products.d.ts +8 -16
  17. package/dist/apps/backend/src/routes/admin/stats.d.ts +2 -4
  18. package/dist/apps/backend/src/routes/admin/warehouses.d.ts +2 -4
  19. package/dist/apps/backend/src/routes/public/brands.d.ts +1 -0
  20. package/dist/apps/backend/src/routes/public/brands.js +1 -0
  21. package/dist/apps/backend/src/routes/public/carts.d.ts +18 -36
  22. package/dist/apps/backend/src/routes/public/orders.d.ts +4 -8
  23. package/dist/apps/backend/src/routes/public/products.d.ts +4 -8
  24. package/dist/apps/backend/src/validators/brand.d.ts +4 -0
  25. package/dist/apps/backend/src/validators/brand.js +4 -0
  26. package/dist/packages/api-client/src/fetchers/brands.d.ts +1 -0
  27. package/dist/packages/api-client/src/fetchers/carts.d.ts +18 -36
  28. package/dist/packages/api-client/src/fetchers/orders.d.ts +4 -8
  29. package/dist/packages/api-client/src/fetchers/products.d.ts +4 -8
  30. package/dist/packages/api-client/src/hooks/admin/abandoned-carts.d.ts +4 -8
  31. package/dist/packages/api-client/src/hooks/admin/brands.d.ts +8 -0
  32. package/dist/packages/api-client/src/hooks/admin/customers.d.ts +2 -4
  33. package/dist/packages/api-client/src/hooks/admin/delivery-zones.d.ts +8 -0
  34. package/dist/packages/api-client/src/hooks/admin/discount-codes.d.ts +10 -0
  35. package/dist/packages/api-client/src/hooks/admin/inventory.d.ts +0 -4
  36. package/dist/packages/api-client/src/hooks/admin/orders.d.ts +12 -24
  37. package/dist/packages/api-client/src/hooks/admin/products.d.ts +4 -8
  38. package/dist/packages/api-client/src/hooks/admin/stats.d.ts +2 -4
  39. package/dist/packages/api-client/src/hooks/admin/warehouses.d.ts +2 -4
  40. package/dist/packages/api-client/src/hooks/public/brands.d.ts +1 -0
  41. package/dist/packages/api-client/src/hooks/public/carts.d.ts +18 -36
  42. package/dist/packages/api-client/src/hooks/public/orders.d.ts +4 -8
  43. package/dist/packages/api-client/src/hooks/public/products.d.ts +4 -8
  44. package/dist/packages/api-client/src/rpc-client.d.ts +83 -116
  45. package/package.json +1 -1
  46. package/dist/apps/backend/src/generated/zod/index.d.ts +0 -1114
  47. package/dist/apps/backend/src/generated/zod/index.js +0 -670
  48. package/dist/backend-types.d.ts +0 -10
  49. package/dist/backend-types.js +0 -10
  50. package/dist/client.d.ts +0 -20
  51. package/dist/client.js +0 -40
  52. package/dist/enum-types.d.ts +0 -8
  53. package/dist/enum-types.js +0 -5
  54. package/dist/fetchers/brands.d.ts +0 -25
  55. package/dist/fetchers/brands.js +0 -26
  56. package/dist/fetchers/carts.d.ts +0 -2335
  57. package/dist/fetchers/carts.js +0 -174
  58. package/dist/fetchers/delivery-zones.d.ts +0 -28
  59. package/dist/fetchers/delivery-zones.js +0 -26
  60. package/dist/fetchers/index.d.ts +0 -22
  61. package/dist/fetchers/index.js +0 -22
  62. package/dist/fetchers/orders.d.ts +0 -540
  63. package/dist/fetchers/orders.js +0 -44
  64. package/dist/fetchers/products.d.ts +0 -386
  65. package/dist/fetchers/products.js +0 -42
  66. package/dist/hooks/admin/abandoned-carts.d.ts +0 -535
  67. package/dist/hooks/admin/abandoned-carts.js +0 -83
  68. package/dist/hooks/admin/brands.d.ts +0 -79
  69. package/dist/hooks/admin/brands.js +0 -108
  70. package/dist/hooks/admin/customers.d.ts +0 -278
  71. package/dist/hooks/admin/customers.js +0 -26
  72. package/dist/hooks/admin/delivery-zones.d.ts +0 -270
  73. package/dist/hooks/admin/delivery-zones.js +0 -176
  74. package/dist/hooks/admin/discount-codes.d.ts +0 -299
  75. package/dist/hooks/admin/discount-codes.js +0 -165
  76. package/dist/hooks/admin/index.d.ts +0 -16
  77. package/dist/hooks/admin/index.js +0 -16
  78. package/dist/hooks/admin/inventory.d.ts +0 -224
  79. package/dist/hooks/admin/inventory.js +0 -107
  80. package/dist/hooks/admin/orders.d.ts +0 -1662
  81. package/dist/hooks/admin/orders.js +0 -178
  82. package/dist/hooks/admin/products.d.ts +0 -374
  83. package/dist/hooks/admin/products.js +0 -89
  84. package/dist/hooks/admin/stats.d.ts +0 -277
  85. package/dist/hooks/admin/stats.js +0 -25
  86. package/dist/hooks/admin/variants.d.ts +0 -115
  87. package/dist/hooks/admin/variants.js +0 -127
  88. package/dist/hooks/admin/warehouses.d.ts +0 -277
  89. package/dist/hooks/admin/warehouses.js +0 -108
  90. package/dist/hooks/public/brands.d.ts +0 -33
  91. package/dist/hooks/public/brands.js +0 -30
  92. package/dist/hooks/public/carts.d.ts +0 -2405
  93. package/dist/hooks/public/carts.js +0 -213
  94. package/dist/hooks/public/delivery-zones.d.ts +0 -34
  95. package/dist/hooks/public/delivery-zones.js +0 -28
  96. package/dist/hooks/public/index.d.ts +0 -10
  97. package/dist/hooks/public/index.js +0 -10
  98. package/dist/hooks/public/orders.d.ts +0 -559
  99. package/dist/hooks/public/orders.js +0 -50
  100. package/dist/hooks/public/products.d.ts +0 -398
  101. package/dist/hooks/public/products.js +0 -47
  102. package/dist/hooks/use-query-unwrapped.d.ts +0 -20
  103. package/dist/hooks/use-query-unwrapped.js +0 -22
  104. package/dist/hooks/useApiConfig.d.ts +0 -12
  105. package/dist/hooks/useApiConfig.js +0 -14
  106. package/dist/index.d.ts +0 -20
  107. package/dist/index.js +0 -25
  108. package/dist/provider.d.ts +0 -36
  109. package/dist/provider.js +0 -54
  110. package/dist/rpc-client.d.ts +0 -9607
  111. package/dist/rpc-client.js +0 -78
  112. package/dist/rpc-types.d.ts +0 -76
  113. package/dist/rpc-types.js +0 -7
  114. package/dist/types.d.ts +0 -34
  115. package/dist/types.js +0 -16
  116. package/dist/utils/query-keys.d.ts +0 -106
  117. package/dist/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,374 +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
- name: string;
12
- id: 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
- name: string | null;
25
- id: string;
26
- isActive: boolean;
27
- thumbnailUrl: string | null;
28
- productId: string;
29
- sku: string;
30
- trackInventory: boolean;
31
- lowStockThreshold: number | null;
32
- }[];
33
- name: string;
34
- id: 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
- };
114
- };
115
- } | {
116
- [x: number]: string | number | boolean | {
117
- [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
118
- } | /*elided*/ any;
119
- length: number;
120
- toString: never;
121
- toLocaleString: never;
122
- pop: never;
123
- push: never;
124
- concat: never;
125
- join: never;
126
- reverse: never;
127
- shift: never;
128
- slice: never;
129
- sort: never;
130
- splice: never;
131
- unshift: never;
132
- indexOf: never;
133
- lastIndexOf: never;
134
- every: never;
135
- some: never;
136
- forEach: never;
137
- map: never;
138
- filter: never;
139
- reduce: never;
140
- reduceRight: never;
141
- find: never;
142
- findIndex: never;
143
- fill: never;
144
- copyWithin: never;
145
- entries: never;
146
- keys: never;
147
- values: never;
148
- includes: never;
149
- flatMap: never;
150
- flat: never;
151
- [Symbol.iterator]: never;
152
- readonly [Symbol.unscopables]: {
153
- [x: number]: boolean;
154
- length?: boolean;
155
- toString?: boolean;
156
- toLocaleString?: boolean;
157
- pop?: boolean;
158
- push?: boolean;
159
- concat?: boolean;
160
- join?: boolean;
161
- reverse?: boolean;
162
- shift?: boolean;
163
- slice?: boolean;
164
- sort?: boolean;
165
- splice?: boolean;
166
- unshift?: boolean;
167
- indexOf?: boolean;
168
- lastIndexOf?: boolean;
169
- every?: boolean;
170
- some?: boolean;
171
- forEach?: boolean;
172
- map?: boolean;
173
- filter?: boolean;
174
- reduce?: boolean;
175
- reduceRight?: boolean;
176
- find?: boolean;
177
- findIndex?: boolean;
178
- fill?: boolean;
179
- copyWithin?: boolean;
180
- entries?: boolean;
181
- keys?: boolean;
182
- values?: boolean;
183
- includes?: boolean;
184
- flatMap?: boolean;
185
- flat?: boolean;
186
- };
187
- };
188
- }[], Error>;
189
- 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<{
190
- brand: {
191
- createdAt: string;
192
- updatedAt: string;
193
- deletedAt: string;
194
- name: string;
195
- id: string;
196
- slug: string;
197
- logoUrl: string | null;
198
- siteUrl: string;
199
- domain: string;
200
- metaPixelId: string | null;
201
- };
202
- variants: {
203
- createdAt: string;
204
- updatedAt: string;
205
- price: number;
206
- deletedAt: string;
207
- name: string | null;
208
- id: string;
209
- isActive: boolean;
210
- thumbnailUrl: string | null;
211
- productId: string;
212
- sku: string;
213
- trackInventory: boolean;
214
- lowStockThreshold: number | null;
215
- }[];
216
- name: string;
217
- id: string;
218
- slug: string;
219
- createdAt: string;
220
- updatedAt: string;
221
- deletedAt: string;
222
- brandId: string;
223
- isActive: boolean;
224
- description: string | null;
225
- thumbnailUrl: string | null;
226
- quantityDiscounts: string | number | boolean | {
227
- [x: string]: string | number | boolean | /*elided*/ any | {
228
- [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
229
- length: number;
230
- toString: never;
231
- toLocaleString: never;
232
- pop: never;
233
- push: never;
234
- concat: never;
235
- join: never;
236
- reverse: never;
237
- shift: never;
238
- slice: never;
239
- sort: never;
240
- splice: never;
241
- unshift: never;
242
- indexOf: never;
243
- lastIndexOf: never;
244
- every: never;
245
- some: never;
246
- forEach: never;
247
- map: never;
248
- filter: never;
249
- reduce: never;
250
- reduceRight: never;
251
- find: never;
252
- findIndex: never;
253
- fill: never;
254
- copyWithin: never;
255
- entries: never;
256
- keys: never;
257
- values: never;
258
- includes: never;
259
- flatMap: never;
260
- flat: never;
261
- [Symbol.iterator]: never;
262
- readonly [Symbol.unscopables]: {
263
- [x: number]: boolean;
264
- length?: boolean;
265
- toString?: boolean;
266
- toLocaleString?: boolean;
267
- pop?: boolean;
268
- push?: boolean;
269
- concat?: boolean;
270
- join?: boolean;
271
- reverse?: boolean;
272
- shift?: boolean;
273
- slice?: boolean;
274
- sort?: boolean;
275
- splice?: boolean;
276
- unshift?: boolean;
277
- indexOf?: boolean;
278
- lastIndexOf?: boolean;
279
- every?: boolean;
280
- some?: boolean;
281
- forEach?: boolean;
282
- map?: boolean;
283
- filter?: boolean;
284
- reduce?: boolean;
285
- reduceRight?: boolean;
286
- find?: boolean;
287
- findIndex?: boolean;
288
- fill?: boolean;
289
- copyWithin?: boolean;
290
- entries?: boolean;
291
- keys?: boolean;
292
- values?: boolean;
293
- includes?: boolean;
294
- flatMap?: boolean;
295
- flat?: boolean;
296
- };
297
- };
298
- } | {
299
- [x: number]: string | number | boolean | {
300
- [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
301
- } | /*elided*/ any;
302
- length: number;
303
- toString: never;
304
- toLocaleString: never;
305
- pop: never;
306
- push: never;
307
- concat: never;
308
- join: never;
309
- reverse: never;
310
- shift: never;
311
- slice: never;
312
- sort: never;
313
- splice: never;
314
- unshift: never;
315
- indexOf: never;
316
- lastIndexOf: never;
317
- every: never;
318
- some: never;
319
- forEach: never;
320
- map: never;
321
- filter: never;
322
- reduce: never;
323
- reduceRight: never;
324
- find: never;
325
- findIndex: never;
326
- fill: never;
327
- copyWithin: never;
328
- entries: never;
329
- keys: never;
330
- values: never;
331
- includes: never;
332
- flatMap: never;
333
- flat: never;
334
- [Symbol.iterator]: never;
335
- readonly [Symbol.unscopables]: {
336
- [x: number]: boolean;
337
- length?: boolean;
338
- toString?: boolean;
339
- toLocaleString?: boolean;
340
- pop?: boolean;
341
- push?: boolean;
342
- concat?: boolean;
343
- join?: boolean;
344
- reverse?: boolean;
345
- shift?: boolean;
346
- slice?: boolean;
347
- sort?: boolean;
348
- splice?: boolean;
349
- unshift?: boolean;
350
- indexOf?: boolean;
351
- lastIndexOf?: boolean;
352
- every?: boolean;
353
- some?: boolean;
354
- forEach?: boolean;
355
- map?: boolean;
356
- filter?: boolean;
357
- reduce?: boolean;
358
- reduceRight?: boolean;
359
- find?: boolean;
360
- findIndex?: boolean;
361
- fill?: boolean;
362
- copyWithin?: boolean;
363
- entries?: boolean;
364
- keys?: boolean;
365
- values?: boolean;
366
- includes?: boolean;
367
- flatMap?: boolean;
368
- flat?: boolean;
369
- };
370
- };
371
- }, Error>;
372
- export declare function useCreateProduct(options?: UseMutationOptions<any, Error, any>): import("@tanstack/react-query").UseMutationResult<any, Error, any, unknown>;
373
- export declare function useUpdateProduct(productId: string, options?: UseMutationOptions<any, Error, any>): import("@tanstack/react-query").UseMutationResult<any, Error, any, unknown>;
374
- 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
- }