@rovela-ai/sdk 0.3.5 → 0.3.7

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 (83) hide show
  1. package/dist/admin/api/categories.d.ts.map +1 -1
  2. package/dist/admin/api/categories.js +10 -5
  3. package/dist/admin/api/categories.js.map +1 -1
  4. package/dist/admin/api/customers.d.ts.map +1 -1
  5. package/dist/admin/api/customers.js +8 -4
  6. package/dist/admin/api/customers.js.map +1 -1
  7. package/dist/admin/api/orders.d.ts +1 -1
  8. package/dist/admin/api/orders.d.ts.map +1 -1
  9. package/dist/admin/api/orders.js +12 -6
  10. package/dist/admin/api/orders.js.map +1 -1
  11. package/dist/admin/api/products.d.ts.map +1 -1
  12. package/dist/admin/api/products.js +19 -8
  13. package/dist/admin/api/products.js.map +1 -1
  14. package/dist/admin/api/shipping.d.ts.map +1 -1
  15. package/dist/admin/api/shipping.js +17 -16
  16. package/dist/admin/api/shipping.js.map +1 -1
  17. package/dist/admin/api/tax-zones.d.ts.map +1 -1
  18. package/dist/admin/api/tax-zones.js +10 -5
  19. package/dist/admin/api/tax-zones.js.map +1 -1
  20. package/dist/admin/components/CategoryForm.d.ts.map +1 -1
  21. package/dist/admin/components/CategoryForm.js +54 -65
  22. package/dist/admin/components/CategoryForm.js.map +1 -1
  23. package/dist/admin/components/CategorySelect.d.ts.map +1 -1
  24. package/dist/admin/components/CategorySelect.js +9 -14
  25. package/dist/admin/components/CategorySelect.js.map +1 -1
  26. package/dist/admin/components/CustomerDetails.js +3 -3
  27. package/dist/admin/components/CustomerDetails.js.map +1 -1
  28. package/dist/admin/components/CustomerTable.js +3 -3
  29. package/dist/admin/components/CustomerTable.js.map +1 -1
  30. package/dist/admin/components/LogoUpload.d.ts.map +1 -1
  31. package/dist/admin/components/LogoUpload.js +49 -67
  32. package/dist/admin/components/LogoUpload.js.map +1 -1
  33. package/dist/admin/components/OrderDetails.d.ts.map +1 -1
  34. package/dist/admin/components/OrderDetails.js +34 -65
  35. package/dist/admin/components/OrderDetails.js.map +1 -1
  36. package/dist/admin/components/OrderTable.js +2 -2
  37. package/dist/admin/components/OrderTable.js.map +1 -1
  38. package/dist/admin/components/PaymentSettings.d.ts.map +1 -1
  39. package/dist/admin/components/PaymentSettings.js +28 -51
  40. package/dist/admin/components/PaymentSettings.js.map +1 -1
  41. package/dist/admin/components/ProductTable.js +3 -3
  42. package/dist/admin/components/ProductTable.js.map +1 -1
  43. package/dist/admin/components/ShippingSettings.d.ts.map +1 -1
  44. package/dist/admin/components/ShippingSettings.js +177 -244
  45. package/dist/admin/components/ShippingSettings.js.map +1 -1
  46. package/dist/admin/components/StoreSettings.d.ts.map +1 -1
  47. package/dist/admin/components/StoreSettings.js +28 -42
  48. package/dist/admin/components/StoreSettings.js.map +1 -1
  49. package/dist/admin/components/TaxSettings.d.ts.map +1 -1
  50. package/dist/admin/components/TaxSettings.js +49 -81
  51. package/dist/admin/components/TaxSettings.js.map +1 -1
  52. package/dist/admin/hooks/fetchAdminApi.d.ts +65 -0
  53. package/dist/admin/hooks/fetchAdminApi.d.ts.map +1 -0
  54. package/dist/admin/hooks/fetchAdminApi.js +96 -0
  55. package/dist/admin/hooks/fetchAdminApi.js.map +1 -0
  56. package/dist/admin/hooks/useAdminCategories.d.ts +0 -27
  57. package/dist/admin/hooks/useAdminCategories.d.ts.map +1 -1
  58. package/dist/admin/hooks/useAdminCategories.js +39 -147
  59. package/dist/admin/hooks/useAdminCategories.js.map +1 -1
  60. package/dist/admin/hooks/useAdminCustomers.d.ts +0 -38
  61. package/dist/admin/hooks/useAdminCustomers.d.ts.map +1 -1
  62. package/dist/admin/hooks/useAdminCustomers.js +66 -172
  63. package/dist/admin/hooks/useAdminCustomers.js.map +1 -1
  64. package/dist/admin/hooks/useAdminMe.d.ts.map +1 -1
  65. package/dist/admin/hooks/useAdminMe.js +31 -59
  66. package/dist/admin/hooks/useAdminMe.js.map +1 -1
  67. package/dist/admin/hooks/useAdminOrders.d.ts +0 -38
  68. package/dist/admin/hooks/useAdminOrders.d.ts.map +1 -1
  69. package/dist/admin/hooks/useAdminOrders.js +66 -208
  70. package/dist/admin/hooks/useAdminOrders.js.map +1 -1
  71. package/dist/admin/hooks/useAdminProducts.d.ts +0 -36
  72. package/dist/admin/hooks/useAdminProducts.d.ts.map +1 -1
  73. package/dist/admin/hooks/useAdminProducts.js +61 -180
  74. package/dist/admin/hooks/useAdminProducts.js.map +1 -1
  75. package/dist/admin/hooks/useAdminStats.d.ts.map +1 -1
  76. package/dist/admin/hooks/useAdminStats.js +26 -38
  77. package/dist/admin/hooks/useAdminStats.js.map +1 -1
  78. package/dist/admin/hooks/useAdminUsers.d.ts.map +1 -1
  79. package/dist/admin/hooks/useAdminUsers.js +82 -145
  80. package/dist/admin/hooks/useAdminUsers.js.map +1 -1
  81. package/dist/admin/types.d.ts +4 -4
  82. package/dist/admin/types.d.ts.map +1 -1
  83. package/package.json +1 -1
@@ -2,218 +2,99 @@
2
2
  /**
3
3
  * @rovela/sdk/admin/hooks/useAdminProducts
4
4
  *
5
- * Product management hook for admin panel.
5
+ * Product management hook for admin panel. All HTTP calls go through
6
+ * `fetchAdminApi` which returns a discriminated union instead of throwing
7
+ * on non-ok responses — that keeps expected 403/404 from surfacing as
8
+ * Next.js dev overlays and ensures callers receive specific server error
9
+ * messages (including the friendly "You don't have permission to do this."
10
+ * translation for curt 403 responses).
6
11
  */
7
12
  import { useState, useCallback } from 'react';
13
+ import { fetchAdminApi } from './fetchAdminApi';
8
14
  // =============================================================================
9
15
  // Hook Implementation
10
16
  // =============================================================================
11
- /**
12
- * Product management hook for admin panel.
13
- *
14
- * @returns Products data and CRUD methods
15
- *
16
- * @example
17
- * ```typescript
18
- * function ProductsPage() {
19
- * const {
20
- * products,
21
- * total,
22
- * page,
23
- * isLoading,
24
- * error,
25
- * fetchProducts,
26
- * createProduct,
27
- * updateProduct,
28
- * deleteProduct,
29
- * updateVariant,
30
- * } = useAdminProducts()
31
- *
32
- * useEffect(() => {
33
- * fetchProducts({ status: 'active', sort: 'newest' })
34
- * }, [fetchProducts])
35
- *
36
- * const handleCreate = async (data: ProductFormData) => {
37
- * const result = await createProduct(data)
38
- * if (result.success) {
39
- * fetchProducts() // Refresh list
40
- * }
41
- * }
42
- *
43
- * return <ProductTable products={products} onCreate={handleCreate} />
44
- * }
45
- * ```
46
- */
47
17
  export function useAdminProducts() {
48
18
  const [products, setProducts] = useState([]);
49
19
  const [total, setTotal] = useState(0);
50
20
  const [page, setPage] = useState(1);
51
21
  const [isLoading, setIsLoading] = useState(false);
52
22
  const [error, setError] = useState(null);
53
- /**
54
- * Fetch products with optional filters.
55
- */
56
23
  const fetchProducts = useCallback(async (options = {}) => {
57
24
  const { search, category, status, sort = 'newest', page: pageNum = 1, limit = 20, } = options;
58
25
  setIsLoading(true);
59
26
  setError(null);
60
- try {
61
- const params = new URLSearchParams();
62
- if (search)
63
- params.set('search', search);
64
- if (category)
65
- params.set('category', category);
66
- if (status)
67
- params.set('status', status);
68
- params.set('sort', sort);
69
- params.set('page', pageNum.toString());
70
- params.set('limit', limit.toString());
71
- const response = await fetch(`/api/admin/products?${params.toString()}`);
72
- if (!response.ok) {
73
- const data = await response.json();
74
- throw new Error(data.error || 'Failed to fetch products');
75
- }
76
- const data = await response.json();
77
- setProducts(data.data || []);
78
- setTotal(data.total || 0);
79
- setPage(data.page || 1);
80
- }
81
- catch (err) {
82
- console.error('[useAdminProducts] Fetch error:', err);
83
- setError(err instanceof Error ? err.message : 'Failed to fetch products');
84
- }
85
- finally {
86
- setIsLoading(false);
27
+ const params = new URLSearchParams();
28
+ if (search)
29
+ params.set('search', search);
30
+ if (category)
31
+ params.set('category', category);
32
+ if (status)
33
+ params.set('status', status);
34
+ params.set('sort', sort);
35
+ params.set('page', pageNum.toString());
36
+ params.set('limit', limit.toString());
37
+ const res = await fetchAdminApi(`/api/admin/products?${params.toString()}`);
38
+ setIsLoading(false);
39
+ if (!res.ok) {
40
+ setError(res.error);
41
+ return;
87
42
  }
43
+ setProducts(res.data.data || []);
44
+ setTotal(res.data.total || 0);
45
+ setPage(res.data.page || 1);
88
46
  }, []);
89
- /**
90
- * Get a single product by ID.
91
- */
92
47
  const getProduct = useCallback(async (id) => {
93
- try {
94
- const response = await fetch(`/api/admin/products/${id}`);
95
- if (!response.ok) {
96
- const data = await response.json();
97
- throw new Error(data.error || 'Failed to fetch product');
98
- }
99
- const data = await response.json();
100
- return data.data;
101
- }
102
- catch (err) {
103
- console.error('[useAdminProducts] Get product error:', err);
104
- setError(err instanceof Error ? err.message : 'Failed to fetch product');
48
+ const res = await fetchAdminApi(`/api/admin/products/${id}`);
49
+ if (!res.ok) {
50
+ setError(res.error);
105
51
  return null;
106
52
  }
53
+ return res.data.data;
107
54
  }, []);
108
- /**
109
- * Create a new product.
110
- */
111
55
  const createProduct = useCallback(async (data) => {
112
- try {
113
- const response = await fetch('/api/admin/products', {
114
- method: 'POST',
115
- headers: { 'Content-Type': 'application/json' },
116
- body: JSON.stringify(data),
117
- });
118
- const result = await response.json();
119
- if (!response.ok) {
120
- return {
121
- success: false,
122
- error: result.error || 'Failed to create product',
123
- };
124
- }
125
- return {
126
- success: true,
127
- data: result.data,
128
- };
129
- }
130
- catch (err) {
131
- console.error('[useAdminProducts] Create error:', err);
132
- return {
133
- success: false,
134
- error: err instanceof Error ? err.message : 'Failed to create product',
135
- };
56
+ const res = await fetchAdminApi('/api/admin/products', {
57
+ method: 'POST',
58
+ headers: { 'Content-Type': 'application/json' },
59
+ body: JSON.stringify(data),
60
+ });
61
+ if (!res.ok) {
62
+ return { success: false, error: res.error };
136
63
  }
64
+ return { success: true, data: res.data.data };
137
65
  }, []);
138
- /**
139
- * Update an existing product.
140
- */
141
66
  const updateProduct = useCallback(async (id, data) => {
142
- try {
143
- const response = await fetch(`/api/admin/products/${id}`, {
144
- method: 'PUT',
145
- headers: { 'Content-Type': 'application/json' },
146
- body: JSON.stringify(data),
147
- });
148
- const result = await response.json();
149
- if (!response.ok) {
150
- return {
151
- success: false,
152
- error: result.error || 'Failed to update product',
153
- };
154
- }
155
- return {
156
- success: true,
157
- data: result.data,
158
- };
159
- }
160
- catch (err) {
161
- console.error('[useAdminProducts] Update error:', err);
162
- return {
163
- success: false,
164
- error: err instanceof Error ? err.message : 'Failed to update product',
165
- };
67
+ const res = await fetchAdminApi(`/api/admin/products/${id}`, {
68
+ method: 'PUT',
69
+ headers: { 'Content-Type': 'application/json' },
70
+ body: JSON.stringify(data),
71
+ });
72
+ if (!res.ok) {
73
+ return { success: false, error: res.error };
166
74
  }
75
+ return { success: true, data: res.data.data };
167
76
  }, []);
168
- /**
169
- * Delete a product.
170
- */
171
77
  const deleteProduct = useCallback(async (id) => {
172
- try {
173
- const response = await fetch(`/api/admin/products/${id}`, {
174
- method: 'DELETE',
175
- });
176
- if (!response.ok) {
177
- const data = await response.json();
178
- throw new Error(data.error || 'Failed to delete product');
179
- }
180
- return true;
181
- }
182
- catch (err) {
183
- console.error('[useAdminProducts] Delete error:', err);
184
- setError(err instanceof Error ? err.message : 'Failed to delete product');
185
- return false;
78
+ const res = await fetchAdminApi(`/api/admin/products/${id}`, {
79
+ method: 'DELETE',
80
+ });
81
+ if (!res.ok) {
82
+ setError(res.error);
83
+ return { success: false, error: res.error };
186
84
  }
85
+ setError(null);
86
+ return { success: true };
187
87
  }, []);
188
- /**
189
- * Update a product variant.
190
- */
191
88
  const updateVariant = useCallback(async (productId, variantId, data) => {
192
- try {
193
- const response = await fetch(`/api/admin/products/${productId}/variants/${variantId}`, {
194
- method: 'PUT',
195
- headers: { 'Content-Type': 'application/json' },
196
- body: JSON.stringify(data),
197
- });
198
- const result = await response.json();
199
- if (!response.ok) {
200
- return {
201
- success: false,
202
- error: result.error || 'Failed to update variant',
203
- };
204
- }
205
- return {
206
- success: true,
207
- data: result.data,
208
- };
209
- }
210
- catch (err) {
211
- console.error('[useAdminProducts] Update variant error:', err);
212
- return {
213
- success: false,
214
- error: err instanceof Error ? err.message : 'Failed to update variant',
215
- };
89
+ const res = await fetchAdminApi(`/api/admin/products/${productId}/variants/${variantId}`, {
90
+ method: 'PUT',
91
+ headers: { 'Content-Type': 'application/json' },
92
+ body: JSON.stringify(data),
93
+ });
94
+ if (!res.ok) {
95
+ return { success: false, error: res.error };
216
96
  }
97
+ return { success: true, data: res.data.data };
217
98
  }, []);
218
99
  return {
219
100
  products,
@@ -1 +1 @@
1
- {"version":3,"file":"useAdminProducts.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminProducts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAdminProducts.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminProducts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAdminStats.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminStats.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAMV,mBAAmB,EACpB,MAAM,UAAU,CAAA;AAMjB,UAAU,YAAY;IACpB,kCAAkC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,YAAiB,GAAG,mBAAmB,CA0F7E"}
1
+ {"version":3,"file":"useAdminStats.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminStats.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAMV,mBAAmB,EACpB,MAAM,UAAU,CAAA;AAMjB,UAAU,YAAY;IACpB,kCAAkC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,YAAiB,GAAG,mBAAmB,CAmF7E"}
@@ -5,6 +5,7 @@
5
5
  * Dashboard statistics hook for admin panel.
6
6
  */
7
7
  import { useState, useCallback, useEffect } from 'react';
8
+ import { fetchAdminApi } from './fetchAdminApi';
8
9
  // =============================================================================
9
10
  // Hook Implementation
10
11
  // =============================================================================
@@ -48,45 +49,32 @@ export function useAdminStats(options = {}) {
48
49
  const refresh = useCallback(async () => {
49
50
  setIsLoading(true);
50
51
  setError(null);
51
- try {
52
- // Build query params
53
- const params = new URLSearchParams();
54
- if (includeRevenue)
55
- params.set('includeRevenue', 'true');
56
- if (includeOrderStatus)
57
- params.set('includeOrderStatus', 'true');
58
- params.set('lowStockThreshold', lowStockThreshold.toString());
59
- params.set('recentOrdersLimit', recentOrdersLimit.toString());
60
- const response = await fetch(`/api/admin/stats?${params.toString()}`);
61
- if (!response.ok) {
62
- const data = await response.json();
63
- throw new Error(data.error || 'Failed to fetch stats');
64
- }
65
- const data = await response.json();
66
- setStats(data.stats);
67
- setLowStock(data.lowStock || []);
68
- // Map API response to RecentOrder type
69
- setRecentOrders((data.recentOrders || []).map((order) => ({
70
- id: order.id,
71
- email: order.email,
72
- status: order.status,
73
- total: order.total,
74
- createdAt: order.createdAt,
75
- })));
76
- if (data.revenueByDay) {
77
- setRevenueByDay(data.revenueByDay);
78
- }
79
- if (data.ordersByStatus) {
80
- setOrdersByStatus(data.ordersByStatus);
81
- }
82
- }
83
- catch (err) {
84
- console.error('[useAdminStats] Fetch error:', err);
85
- setError(err instanceof Error ? err.message : 'Failed to fetch stats');
86
- }
87
- finally {
88
- setIsLoading(false);
52
+ const params = new URLSearchParams();
53
+ if (includeRevenue)
54
+ params.set('includeRevenue', 'true');
55
+ if (includeOrderStatus)
56
+ params.set('includeOrderStatus', 'true');
57
+ params.set('lowStockThreshold', lowStockThreshold.toString());
58
+ params.set('recentOrdersLimit', recentOrdersLimit.toString());
59
+ const res = await fetchAdminApi(`/api/admin/stats?${params.toString()}`);
60
+ setIsLoading(false);
61
+ if (!res.ok) {
62
+ setError(res.error);
63
+ return;
89
64
  }
65
+ setStats(res.data.stats);
66
+ setLowStock(res.data.lowStock || []);
67
+ setRecentOrders((res.data.recentOrders || []).map((order) => ({
68
+ id: order.id,
69
+ email: order.email,
70
+ status: order.status,
71
+ total: order.total,
72
+ createdAt: order.createdAt,
73
+ })));
74
+ if (res.data.revenueByDay)
75
+ setRevenueByDay(res.data.revenueByDay);
76
+ if (res.data.ordersByStatus)
77
+ setOrdersByStatus(res.data.ordersByStatus);
90
78
  }, [includeRevenue, includeOrderStatus, lowStockThreshold, recentOrdersLimit]);
91
79
  // Auto-fetch on mount
92
80
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useAdminStats.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminStats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAdminStats.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminStats.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAdminUsers.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminUsers.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAKV,mBAAmB,EACpB,MAAM,UAAU,CAAA;AAOjB,wBAAgB,aAAa,IAAI,mBAAmB,CAmSnD"}
1
+ {"version":3,"file":"useAdminUsers.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminUsers.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAKV,mBAAmB,EACpB,MAAM,UAAU,CAAA;AAOjB,wBAAgB,aAAa,IAAI,mBAAmB,CA0NnD"}