@rovela-ai/sdk 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/admin/api/accept-invite.d.ts +65 -0
  2. package/dist/admin/api/accept-invite.d.ts.map +1 -0
  3. package/dist/admin/api/accept-invite.js +115 -0
  4. package/dist/admin/api/accept-invite.js.map +1 -0
  5. package/dist/admin/api/categories.d.ts.map +1 -1
  6. package/dist/admin/api/categories.js +21 -28
  7. package/dist/admin/api/categories.js.map +1 -1
  8. package/dist/admin/api/customers.d.ts.map +1 -1
  9. package/dist/admin/api/customers.js +17 -25
  10. package/dist/admin/api/customers.js.map +1 -1
  11. package/dist/admin/api/forgot-password.d.ts +39 -0
  12. package/dist/admin/api/forgot-password.d.ts.map +1 -0
  13. package/dist/admin/api/forgot-password.js +66 -0
  14. package/dist/admin/api/forgot-password.js.map +1 -0
  15. package/dist/admin/api/index.d.ts +6 -0
  16. package/dist/admin/api/index.d.ts.map +1 -1
  17. package/dist/admin/api/index.js +9 -0
  18. package/dist/admin/api/index.js.map +1 -1
  19. package/dist/admin/api/me.d.ts +72 -0
  20. package/dist/admin/api/me.d.ts.map +1 -0
  21. package/dist/admin/api/me.js +177 -0
  22. package/dist/admin/api/me.js.map +1 -0
  23. package/dist/admin/api/orders.d.ts.map +1 -1
  24. package/dist/admin/api/orders.js +21 -28
  25. package/dist/admin/api/orders.js.map +1 -1
  26. package/dist/admin/api/products.d.ts.map +1 -1
  27. package/dist/admin/api/products.js +33 -37
  28. package/dist/admin/api/products.js.map +1 -1
  29. package/dist/admin/api/refund.d.ts.map +1 -1
  30. package/dist/admin/api/refund.js +5 -7
  31. package/dist/admin/api/refund.js.map +1 -1
  32. package/dist/admin/api/reset-password.d.ts +49 -0
  33. package/dist/admin/api/reset-password.d.ts.map +1 -0
  34. package/dist/admin/api/reset-password.js +99 -0
  35. package/dist/admin/api/reset-password.js.map +1 -0
  36. package/dist/admin/api/return.d.ts.map +1 -1
  37. package/dist/admin/api/return.js +9 -12
  38. package/dist/admin/api/return.js.map +1 -1
  39. package/dist/admin/api/settings.d.ts.map +1 -1
  40. package/dist/admin/api/settings.js +9 -12
  41. package/dist/admin/api/settings.js.map +1 -1
  42. package/dist/admin/api/shipping.d.ts.map +1 -1
  43. package/dist/admin/api/shipping.js +65 -61
  44. package/dist/admin/api/shipping.js.map +1 -1
  45. package/dist/admin/api/stats.d.ts.map +1 -1
  46. package/dist/admin/api/stats.js +5 -7
  47. package/dist/admin/api/stats.js.map +1 -1
  48. package/dist/admin/api/stripe-status.d.ts.map +1 -1
  49. package/dist/admin/api/stripe-status.js +5 -7
  50. package/dist/admin/api/stripe-status.js.map +1 -1
  51. package/dist/admin/api/tax-zones.d.ts.map +1 -1
  52. package/dist/admin/api/tax-zones.js +21 -28
  53. package/dist/admin/api/tax-zones.js.map +1 -1
  54. package/dist/admin/api/users.d.ts +142 -0
  55. package/dist/admin/api/users.d.ts.map +1 -0
  56. package/dist/admin/api/users.js +356 -0
  57. package/dist/admin/api/users.js.map +1 -0
  58. package/dist/admin/components/AdminAcceptInviteForm.d.ts +3 -0
  59. package/dist/admin/components/AdminAcceptInviteForm.d.ts.map +1 -0
  60. package/dist/admin/components/AdminAcceptInviteForm.js +137 -0
  61. package/dist/admin/components/AdminAcceptInviteForm.js.map +1 -0
  62. package/dist/admin/components/AdminAccountPage.d.ts +10 -0
  63. package/dist/admin/components/AdminAccountPage.d.ts.map +1 -0
  64. package/dist/admin/components/AdminAccountPage.js +123 -0
  65. package/dist/admin/components/AdminAccountPage.js.map +1 -0
  66. package/dist/admin/components/AdminForgotPasswordForm.d.ts +8 -0
  67. package/dist/admin/components/AdminForgotPasswordForm.d.ts.map +1 -0
  68. package/dist/admin/components/AdminForgotPasswordForm.js +59 -0
  69. package/dist/admin/components/AdminForgotPasswordForm.js.map +1 -0
  70. package/dist/admin/components/AdminNav.d.ts.map +1 -1
  71. package/dist/admin/components/AdminNav.js +32 -4
  72. package/dist/admin/components/AdminNav.js.map +1 -1
  73. package/dist/admin/components/AdminResetPasswordForm.d.ts +12 -0
  74. package/dist/admin/components/AdminResetPasswordForm.d.ts.map +1 -0
  75. package/dist/admin/components/AdminResetPasswordForm.js +134 -0
  76. package/dist/admin/components/AdminResetPasswordForm.js.map +1 -0
  77. package/dist/admin/components/AdminUserMenu.d.ts.map +1 -1
  78. package/dist/admin/components/AdminUserMenu.js +2 -2
  79. package/dist/admin/components/AdminUserMenu.js.map +1 -1
  80. package/dist/admin/components/InviteUserDialog.d.ts +3 -0
  81. package/dist/admin/components/InviteUserDialog.d.ts.map +1 -0
  82. package/dist/admin/components/InviteUserDialog.js +127 -0
  83. package/dist/admin/components/InviteUserDialog.js.map +1 -0
  84. package/dist/admin/components/UsersTable.d.ts +3 -0
  85. package/dist/admin/components/UsersTable.d.ts.map +1 -0
  86. package/dist/admin/components/UsersTable.js +399 -0
  87. package/dist/admin/components/UsersTable.js.map +1 -0
  88. package/dist/admin/components/index.d.ts +9 -0
  89. package/dist/admin/components/index.d.ts.map +1 -1
  90. package/dist/admin/components/index.js +9 -0
  91. package/dist/admin/components/index.js.map +1 -1
  92. package/dist/admin/config.d.ts.map +1 -1
  93. package/dist/admin/config.js +23 -1
  94. package/dist/admin/config.js.map +1 -1
  95. package/dist/admin/hooks/index.d.ts +4 -0
  96. package/dist/admin/hooks/index.d.ts.map +1 -1
  97. package/dist/admin/hooks/index.js +3 -0
  98. package/dist/admin/hooks/index.js.map +1 -1
  99. package/dist/admin/hooks/useAdminMe.d.ts +31 -0
  100. package/dist/admin/hooks/useAdminMe.d.ts.map +1 -0
  101. package/dist/admin/hooks/useAdminMe.js +103 -0
  102. package/dist/admin/hooks/useAdminMe.js.map +1 -0
  103. package/dist/admin/hooks/useAdminPermissions.d.ts +3 -0
  104. package/dist/admin/hooks/useAdminPermissions.d.ts.map +1 -0
  105. package/dist/admin/hooks/useAdminPermissions.js +51 -0
  106. package/dist/admin/hooks/useAdminPermissions.js.map +1 -0
  107. package/dist/admin/hooks/useAdminUsers.d.ts +3 -0
  108. package/dist/admin/hooks/useAdminUsers.d.ts.map +1 -0
  109. package/dist/admin/hooks/useAdminUsers.js +240 -0
  110. package/dist/admin/hooks/useAdminUsers.js.map +1 -0
  111. package/dist/admin/index.d.ts +4 -4
  112. package/dist/admin/index.d.ts.map +1 -1
  113. package/dist/admin/index.js +20 -2
  114. package/dist/admin/index.js.map +1 -1
  115. package/dist/admin/permissions.d.ts +92 -0
  116. package/dist/admin/permissions.d.ts.map +1 -0
  117. package/dist/admin/permissions.js +201 -0
  118. package/dist/admin/permissions.js.map +1 -0
  119. package/dist/admin/server/admin-invite.d.ts +122 -0
  120. package/dist/admin/server/admin-invite.d.ts.map +1 -0
  121. package/dist/admin/server/admin-invite.js +235 -0
  122. package/dist/admin/server/admin-invite.js.map +1 -0
  123. package/dist/admin/server/admin-password-reset.d.ts +87 -0
  124. package/dist/admin/server/admin-password-reset.d.ts.map +1 -0
  125. package/dist/admin/server/admin-password-reset.js +220 -0
  126. package/dist/admin/server/admin-password-reset.js.map +1 -0
  127. package/dist/admin/server/admin-self-service.d.ts +86 -0
  128. package/dist/admin/server/admin-self-service.d.ts.map +1 -0
  129. package/dist/admin/server/admin-self-service.js +188 -0
  130. package/dist/admin/server/admin-self-service.js.map +1 -0
  131. package/dist/admin/server/admin-service.d.ts.map +1 -1
  132. package/dist/admin/server/admin-service.js +21 -2
  133. package/dist/admin/server/admin-service.js.map +1 -1
  134. package/dist/admin/server/admin-session.d.ts +126 -0
  135. package/dist/admin/server/admin-session.d.ts.map +1 -0
  136. package/dist/admin/server/admin-session.js +215 -0
  137. package/dist/admin/server/admin-session.js.map +1 -0
  138. package/dist/admin/server/index.d.ts +7 -0
  139. package/dist/admin/server/index.d.ts.map +1 -1
  140. package/dist/admin/server/index.js +20 -0
  141. package/dist/admin/server/index.js.map +1 -1
  142. package/dist/admin/server/user-management.d.ts +223 -0
  143. package/dist/admin/server/user-management.d.ts.map +1 -0
  144. package/dist/admin/server/user-management.js +846 -0
  145. package/dist/admin/server/user-management.js.map +1 -0
  146. package/dist/admin/types.d.ts +153 -2
  147. package/dist/admin/types.d.ts.map +1 -1
  148. package/dist/core/db/queries.d.ts +19 -13
  149. package/dist/core/db/queries.d.ts.map +1 -1
  150. package/dist/core/db/schema.d.ts +327 -9
  151. package/dist/core/db/schema.d.ts.map +1 -1
  152. package/dist/core/db/schema.js +80 -3
  153. package/dist/core/db/schema.js.map +1 -1
  154. package/dist/core/types.d.ts +19 -3
  155. package/dist/core/types.d.ts.map +1 -1
  156. package/dist/emails/index.d.ts +2 -2
  157. package/dist/emails/index.d.ts.map +1 -1
  158. package/dist/emails/index.js +3 -1
  159. package/dist/emails/index.js.map +1 -1
  160. package/dist/emails/send/admin-auth.d.ts +94 -0
  161. package/dist/emails/send/admin-auth.d.ts.map +1 -0
  162. package/dist/emails/send/admin-auth.js +118 -0
  163. package/dist/emails/send/admin-auth.js.map +1 -0
  164. package/dist/emails/send/index.d.ts +2 -0
  165. package/dist/emails/send/index.d.ts.map +1 -1
  166. package/dist/emails/send/index.js +4 -0
  167. package/dist/emails/send/index.js.map +1 -1
  168. package/dist/emails/templates/admin-invite.d.ts +40 -0
  169. package/dist/emails/templates/admin-invite.d.ts.map +1 -0
  170. package/dist/emails/templates/admin-invite.js +62 -0
  171. package/dist/emails/templates/admin-invite.js.map +1 -0
  172. package/dist/emails/templates/index.d.ts +1 -0
  173. package/dist/emails/templates/index.d.ts.map +1 -1
  174. package/dist/emails/templates/index.js +4 -0
  175. package/dist/emails/templates/index.js.map +1 -1
  176. package/dist/emails/types.d.ts +22 -1
  177. package/dist/emails/types.d.ts.map +1 -1
  178. package/package.json +21 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -9,4 +9,7 @@ export { useAdminOrders } from './useAdminOrders';
9
9
  export { useAdminProducts } from './useAdminProducts';
10
10
  export { useAdminCategories } from './useAdminCategories';
11
11
  export { useAdminCustomers } from './useAdminCustomers';
12
+ export { useAdminUsers } from './useAdminUsers';
13
+ export { useAdminPermissions } from './useAdminPermissions';
14
+ export { useAdminMe } from './useAdminMe';
12
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,31 @@
1
+ export interface AdminMe {
2
+ id: string;
3
+ email: string;
4
+ name: string;
5
+ role: string;
6
+ status: string;
7
+ createdAt: string;
8
+ lastLoginAt: string | null;
9
+ }
10
+ export interface UseAdminMeReturn {
11
+ me: AdminMe | null;
12
+ isLoading: boolean;
13
+ error: string | null;
14
+ refetch: () => Promise<void>;
15
+ updateProfile: (data: {
16
+ name?: string;
17
+ email?: string;
18
+ }) => Promise<{
19
+ success: boolean;
20
+ error?: string;
21
+ }>;
22
+ changePassword: (data: {
23
+ currentPassword: string;
24
+ newPassword: string;
25
+ }) => Promise<{
26
+ success: boolean;
27
+ error?: string;
28
+ }>;
29
+ }
30
+ export declare function useAdminMe(): UseAdminMeReturn;
31
+ //# sourceMappingURL=useAdminMe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAdminMe.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminMe.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,GAAG,IAAI,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,aAAa,EAAE,CAAC,IAAI,EAAE;QACpB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnD,cAAc,EAAE,CAAC,IAAI,EAAE;QACrB,eAAe,EAAE,MAAM,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;KACpB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpD;AAMD,wBAAgB,UAAU,IAAI,gBAAgB,CAoG7C"}
@@ -0,0 +1,103 @@
1
+ 'use client';
2
+ /**
3
+ * @rovela/sdk/admin/hooks/useAdminMe
4
+ *
5
+ * Client hook for the logged-in admin's self-service data: fetch own
6
+ * profile, update own profile, change own password.
7
+ *
8
+ * Lightweight compared to `useAdminUsers` — no list/pagination state.
9
+ * Internal state tracks:
10
+ * - `me`: the current admin row (fetched on mount)
11
+ * - `isLoading`: initial fetch in progress
12
+ * - `error`: last fetch/update error
13
+ *
14
+ * Mutations return a typed result instead of throwing so the caller can
15
+ * surface errors in form UI.
16
+ */
17
+ import { useState, useEffect, useCallback } from 'react';
18
+ // =============================================================================
19
+ // Hook
20
+ // =============================================================================
21
+ export function useAdminMe() {
22
+ const [me, setMe] = useState(null);
23
+ const [isLoading, setIsLoading] = useState(true);
24
+ const [error, setError] = useState(null);
25
+ const refetch = useCallback(async () => {
26
+ setIsLoading(true);
27
+ setError(null);
28
+ try {
29
+ const res = await fetch('/api/admin/me');
30
+ if (!res.ok) {
31
+ const data = (await res.json().catch(() => ({})));
32
+ throw new Error(data.error || 'Failed to load profile');
33
+ }
34
+ const data = (await res.json());
35
+ setMe(data);
36
+ }
37
+ catch (err) {
38
+ console.error('[useAdminMe] fetch error:', err);
39
+ setError(err instanceof Error ? err.message : 'Failed to load profile');
40
+ setMe(null);
41
+ }
42
+ finally {
43
+ setIsLoading(false);
44
+ }
45
+ }, []);
46
+ useEffect(() => {
47
+ refetch();
48
+ }, [refetch]);
49
+ const updateProfile = useCallback(async (data) => {
50
+ try {
51
+ const res = await fetch('/api/admin/me', {
52
+ method: 'PATCH',
53
+ headers: { 'Content-Type': 'application/json' },
54
+ body: JSON.stringify(data),
55
+ });
56
+ const body = (await res.json().catch(() => ({})));
57
+ if (!res.ok || !body.success) {
58
+ return {
59
+ success: false,
60
+ error: body.error || 'Failed to update profile',
61
+ };
62
+ }
63
+ await refetch();
64
+ return { success: true };
65
+ }
66
+ catch (err) {
67
+ console.error('[useAdminMe] updateProfile error:', err);
68
+ return {
69
+ success: false,
70
+ error: err instanceof Error ? err.message : 'Failed to update profile',
71
+ };
72
+ }
73
+ }, [refetch]);
74
+ const changePassword = useCallback(async (data) => {
75
+ try {
76
+ const res = await fetch('/api/admin/me/password', {
77
+ method: 'PATCH',
78
+ headers: { 'Content-Type': 'application/json' },
79
+ body: JSON.stringify(data),
80
+ });
81
+ const body = (await res.json().catch(() => ({})));
82
+ if (!res.ok || !body.success) {
83
+ return {
84
+ success: false,
85
+ error: body.error || 'Failed to change password',
86
+ };
87
+ }
88
+ // Password change bumps sessionVersion → this session is now
89
+ // invalid on the very next request. We deliberately DON'T refetch
90
+ // here — the UI will catch the 401 and redirect to login.
91
+ return { success: true };
92
+ }
93
+ catch (err) {
94
+ console.error('[useAdminMe] changePassword error:', err);
95
+ return {
96
+ success: false,
97
+ error: err instanceof Error ? err.message : 'Failed to change password',
98
+ };
99
+ }
100
+ }, []);
101
+ return { me, isLoading, error, refetch, updateProfile, changePassword };
102
+ }
103
+ //# sourceMappingURL=useAdminMe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAdminMe.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminMe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { UseAdminPermissionsReturn } from '../types';
2
+ export declare function useAdminPermissions(): UseAdminPermissionsReturn;
3
+ //# sourceMappingURL=useAdminPermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAdminPermissions.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminPermissions.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAMzD,wBAAgB,mBAAmB,IAAI,yBAAyB,CA+B/D"}
@@ -0,0 +1,51 @@
1
+ 'use client';
2
+ /**
3
+ * @rovela/sdk/admin/hooks/useAdminPermissions
4
+ *
5
+ * Client-side permission helpers. Pure wrapper around `admin/permissions.ts`
6
+ * that reads the current admin's role from `useAdminAuth`.
7
+ *
8
+ * No network calls — permissions are a function of the JWT already in memory,
9
+ * so this hook is cheap and synchronous once the session has loaded.
10
+ *
11
+ * Server-side is still the source of truth; this hook exists purely for UI
12
+ * gating (hide/disable buttons the user couldn't use anyway).
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * function UsersPage() {
17
+ * const { can, canManageUser, isOwner } = useAdminPermissions()
18
+ * if (!can('users.read')) return <NoAccess />
19
+ *
20
+ * return users.map(u => (
21
+ * <Row
22
+ * user={u}
23
+ * canDelete={isOwner && canManageUser(u)}
24
+ * canDeactivate={canManageUser(u)}
25
+ * />
26
+ * ))
27
+ * }
28
+ * ```
29
+ */
30
+ import { useMemo, useCallback } from 'react';
31
+ import { useAdminAuth } from './useAdminAuth';
32
+ import { hasPermission, canManageUser as canManageUserCore, } from '../permissions';
33
+ // =============================================================================
34
+ // Hook
35
+ // =============================================================================
36
+ export function useAdminPermissions() {
37
+ const { admin } = useAdminAuth();
38
+ const role = (admin?.role ?? null);
39
+ const isOwner = role === 'owner';
40
+ const isAdministrator = role === 'administrator' || role === 'admin'; // legacy alias
41
+ const can = useCallback((permission) => {
42
+ return hasPermission(role, permission);
43
+ }, [role]);
44
+ const canManageUser = useCallback((target) => {
45
+ if (!admin)
46
+ return false;
47
+ return canManageUserCore({ id: admin.id, role: admin.role }, target);
48
+ }, [admin]);
49
+ return useMemo(() => ({ role, isOwner, isAdministrator, can, canManageUser }), [role, isOwner, isAdministrator, can, canManageUser]);
50
+ }
51
+ //# sourceMappingURL=useAdminPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAdminPermissions.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminPermissions.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,aAAa,EACb,aAAa,IAAI,iBAAiB,GAEnC,MAAM,gBAAgB,CAAA;AAIvB,gFAAgF;AAChF,OAAO;AACP,gFAAgF;AAEhF,MAAM,UAAU,mBAAmB;IACjC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAA;IAEhC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,CAAqB,CAAA;IAEtD,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAA;IAChC,MAAM,eAAe,GACnB,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,OAAO,CAAA,CAAC,eAAe;IAE9D,MAAM,GAAG,GAAG,WAAW,CACrB,CAAC,UAAsB,EAAW,EAAE;QAClC,OAAO,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACxC,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,MAAuC,EAAW,EAAE;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QACxB,OAAO,iBAAiB,CACtB,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAiB,EAAE,EAC/C,MAAM,CACP,CAAA;IACH,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAA;IAED,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,EAC9D,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,CAAC,CACrD,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { UseAdminUsersReturn } from '../types';
2
+ export declare function useAdminUsers(): UseAdminUsersReturn;
3
+ //# sourceMappingURL=useAdminUsers.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,240 @@
1
+ 'use client';
2
+ /**
3
+ * @rovela/sdk/admin/hooks/useAdminUsers
4
+ *
5
+ * Admin user management data hook. Mirrors `useAdminCustomers` — state for
6
+ * the list, fetchers, and mutation helpers (deactivate, reactivate, delete).
7
+ *
8
+ * All mutations optimistically refetch the current page afterward so the
9
+ * table always reflects server state. Errors from mutations are returned
10
+ * to the caller so the UI can surface them in a toast or confirm dialog.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * function UsersPage() {
15
+ * const { users, isLoading, fetchUsers, deactivate } = useAdminUsers()
16
+ *
17
+ * useEffect(() => { fetchUsers() }, [fetchUsers])
18
+ *
19
+ * const handleDeactivate = async (id: string) => {
20
+ * const result = await deactivate(id)
21
+ * if (!result.success) toast.error(result.error)
22
+ * }
23
+ * }
24
+ * ```
25
+ */
26
+ import { useState, useCallback, useRef } from 'react';
27
+ // =============================================================================
28
+ // Hook
29
+ // =============================================================================
30
+ export function useAdminUsers() {
31
+ const [users, setUsers] = useState([]);
32
+ const [total, setTotal] = useState(0);
33
+ const [page, setPage] = useState(1);
34
+ const [isLoading, setIsLoading] = useState(false);
35
+ const [error, setError] = useState(null);
36
+ // Keep the last fetch options around so mutation handlers can refetch
37
+ // the exact same view without the caller passing them in again.
38
+ const lastOptionsRef = useRef({});
39
+ const fetchUsers = useCallback(async (options = {}) => {
40
+ const merged = {
41
+ page: 1,
42
+ limit: 20,
43
+ ...options,
44
+ };
45
+ lastOptionsRef.current = merged;
46
+ setIsLoading(true);
47
+ setError(null);
48
+ try {
49
+ const params = new URLSearchParams();
50
+ if (merged.search)
51
+ params.set('search', merged.search);
52
+ if (merged.status && merged.status !== 'all')
53
+ params.set('status', merged.status);
54
+ if (merged.role && merged.role !== 'all')
55
+ params.set('role', merged.role);
56
+ params.set('page', String(merged.page ?? 1));
57
+ params.set('limit', String(merged.limit ?? 20));
58
+ const response = await fetch(`/api/admin/users?${params.toString()}`);
59
+ if (!response.ok) {
60
+ const data = (await response.json().catch(() => ({})));
61
+ throw new Error(data.error || 'Failed to fetch users');
62
+ }
63
+ const data = (await response.json());
64
+ setUsers(data.data ?? []);
65
+ setTotal(data.total ?? 0);
66
+ setPage(data.page ?? 1);
67
+ }
68
+ catch (err) {
69
+ console.error('[useAdminUsers] Fetch error:', err);
70
+ setError(err instanceof Error ? err.message : 'Failed to fetch users');
71
+ setUsers([]);
72
+ }
73
+ finally {
74
+ setIsLoading(false);
75
+ }
76
+ }, []);
77
+ const getUser = useCallback(async (id) => {
78
+ try {
79
+ const response = await fetch(`/api/admin/users/${id}`);
80
+ if (!response.ok)
81
+ return null;
82
+ const data = (await response.json());
83
+ return data.data ?? null;
84
+ }
85
+ catch (err) {
86
+ console.error('[useAdminUsers] getUser error:', err);
87
+ return null;
88
+ }
89
+ }, []);
90
+ // Internal helper: PATCH with action discriminator
91
+ const patchAction = useCallback(async (id, action) => {
92
+ try {
93
+ const response = await fetch(`/api/admin/users/${id}`, {
94
+ method: 'PATCH',
95
+ headers: { 'Content-Type': 'application/json' },
96
+ body: JSON.stringify({ action }),
97
+ });
98
+ const data = (await response.json().catch(() => ({})));
99
+ if (!response.ok || !data.success) {
100
+ return { success: false, error: data.error || `Failed to ${action} user` };
101
+ }
102
+ // Refresh current view so the table reflects the new state
103
+ await fetchUsers(lastOptionsRef.current);
104
+ return { success: true };
105
+ }
106
+ catch (err) {
107
+ console.error(`[useAdminUsers] ${action} error:`, err);
108
+ return {
109
+ success: false,
110
+ error: err instanceof Error ? err.message : `Failed to ${action} user`,
111
+ };
112
+ }
113
+ }, [fetchUsers]);
114
+ const deactivate = useCallback((id) => patchAction(id, 'deactivate'), [patchAction]);
115
+ const reactivate = useCallback((id) => patchAction(id, 'reactivate'), [patchAction]);
116
+ const deleteUser = useCallback(async (id) => {
117
+ try {
118
+ const response = await fetch(`/api/admin/users/${id}`, {
119
+ method: 'DELETE',
120
+ });
121
+ const data = (await response.json().catch(() => ({})));
122
+ if (!response.ok || !data.success) {
123
+ return { success: false, error: data.error || 'Failed to delete user' };
124
+ }
125
+ await fetchUsers(lastOptionsRef.current);
126
+ return { success: true };
127
+ }
128
+ catch (err) {
129
+ console.error('[useAdminUsers] delete error:', err);
130
+ return {
131
+ success: false,
132
+ error: err instanceof Error ? err.message : 'Failed to delete user',
133
+ };
134
+ }
135
+ }, [fetchUsers]);
136
+ // =========================================================================
137
+ // Phase 3 — invite, resend, cancel, change role
138
+ // =========================================================================
139
+ const invite = useCallback(async (payload) => {
140
+ try {
141
+ const response = await fetch('/api/admin/users', {
142
+ method: 'POST',
143
+ headers: { 'Content-Type': 'application/json' },
144
+ body: JSON.stringify(payload),
145
+ });
146
+ const data = (await response.json().catch(() => ({})));
147
+ if (!response.ok || !data.success) {
148
+ return {
149
+ success: false,
150
+ error: data.error || 'Failed to send invite',
151
+ };
152
+ }
153
+ await fetchUsers(lastOptionsRef.current);
154
+ return {
155
+ success: true,
156
+ adminId: data.adminId,
157
+ inviteUrl: data.inviteUrl,
158
+ };
159
+ }
160
+ catch (err) {
161
+ console.error('[useAdminUsers] invite error:', err);
162
+ return {
163
+ success: false,
164
+ error: err instanceof Error ? err.message : 'Failed to send invite',
165
+ };
166
+ }
167
+ }, [fetchUsers]);
168
+ const resendInvite = useCallback(async (id) => {
169
+ try {
170
+ const response = await fetch(`/api/admin/users/${id}`, {
171
+ method: 'PATCH',
172
+ headers: { 'Content-Type': 'application/json' },
173
+ body: JSON.stringify({ action: 'resend_invite' }),
174
+ });
175
+ const data = (await response.json().catch(() => ({})));
176
+ if (!response.ok || !data.success) {
177
+ return {
178
+ success: false,
179
+ error: data.error || 'Failed to resend invite',
180
+ };
181
+ }
182
+ await fetchUsers(lastOptionsRef.current);
183
+ return {
184
+ success: true,
185
+ inviteUrl: data.inviteUrl,
186
+ };
187
+ }
188
+ catch (err) {
189
+ console.error('[useAdminUsers] resendInvite error:', err);
190
+ return {
191
+ success: false,
192
+ error: err instanceof Error ? err.message : 'Failed to resend invite',
193
+ };
194
+ }
195
+ }, [fetchUsers]);
196
+ const cancelInvite = useCallback((id) => patchAction(id, 'cancel_invite'), [patchAction]);
197
+ const changeRole = useCallback(async (id, newRole) => {
198
+ try {
199
+ const response = await fetch(`/api/admin/users/${id}`, {
200
+ method: 'PATCH',
201
+ headers: { 'Content-Type': 'application/json' },
202
+ body: JSON.stringify({ action: 'change_role', role: newRole }),
203
+ });
204
+ const data = (await response.json().catch(() => ({})));
205
+ if (!response.ok || !data.success) {
206
+ return {
207
+ success: false,
208
+ error: data.error || 'Failed to change role',
209
+ };
210
+ }
211
+ await fetchUsers(lastOptionsRef.current);
212
+ return { success: true };
213
+ }
214
+ catch (err) {
215
+ console.error('[useAdminUsers] changeRole error:', err);
216
+ return {
217
+ success: false,
218
+ error: err instanceof Error ? err.message : 'Failed to change role',
219
+ };
220
+ }
221
+ }, [fetchUsers]);
222
+ return {
223
+ users,
224
+ total,
225
+ page,
226
+ isLoading,
227
+ error,
228
+ fetchUsers,
229
+ getUser,
230
+ deactivate,
231
+ reactivate,
232
+ deleteUser,
233
+ // Phase 3
234
+ invite,
235
+ resendInvite,
236
+ cancelInvite,
237
+ changeRole,
238
+ };
239
+ }
240
+ //# sourceMappingURL=useAdminUsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAdminUsers.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminUsers.ts"],"names":[],"mappings":"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"}
@@ -54,12 +54,12 @@
54
54
  * }
55
55
  * ```
56
56
  */
57
- export type { OrderStatus, ProductStatus, AdminRole, Order, OrderItem, Product, ProductVariant, Customer, StoreAdmin, Category, PaginatedResponse, ApiError, Address, AdminApiError, AdminSession, AdminAuthState, AdminSignInOptions, AdminSignInResult, DashboardStats, LowStockItem, RecentOrder, RevenueDataPoint, OrderStatusDataPoint, UseAdminStatsOptions, ProductFormData, VariantFormData, CategoryFormData, ProductListOptions, OrderListOptions, CustomerListOptions, CrudResult, RefundResult, StoreSettingsData, StoreSettingsInput, ShippingCarrierData, ShippingCarrierInput, ShippingRateData, ShippingZoneData, ShippingZoneInput, ShippingRateInput, ShippingSettingsProps, ShippingZoneFormProps, ShippingRateFormProps, TaxZoneData, TaxZoneInput, TaxSettingsProps, ShippingMode, ShippoAddress, ShippoParcel, ShippoRate, ShippoLabelResult, ShippoTrackingStatus, ShippoValidationResult, AdminOrderListItem, AdminOrderDetail, AdminOrderItem, AdminProductListItem, AdminProductDetail, AdminProductVariant, AdminCustomerListItem, AdminCustomerDetail, AdminCategoryListItem, AdminLayoutProps, AdminGuardProps, AdminLoginFormProps, AdminNavProps, AdminHeaderProps, StatsCardsProps, RecentOrdersProps, LowStockAlertProps, ProductTableProps, ProductFormProps, InventoryEditorProps, OrderTableProps, OrderDetailsProps, RefundDialogProps, StoreSettingsProps, CustomerTableProps, CustomerDetailsProps, AdminAuthConfigOptions, UseAdminAuthReturn, UseAdminStatsReturn, UseAdminOrdersReturn, UseAdminProductsReturn, UseAdminCustomersReturn, UseAdminCategoriesReturn, } from './types';
57
+ export type { OrderStatus, ProductStatus, AdminRole, Order, OrderItem, Product, ProductVariant, Customer, StoreAdmin, Category, PaginatedResponse, ApiError, Address, AdminApiError, AdminSession, AdminAuthState, AdminSignInOptions, AdminSignInResult, DashboardStats, LowStockItem, RecentOrder, RevenueDataPoint, OrderStatusDataPoint, UseAdminStatsOptions, ProductFormData, VariantFormData, CategoryFormData, ProductListOptions, OrderListOptions, CustomerListOptions, CrudResult, RefundResult, StoreSettingsData, StoreSettingsInput, ShippingCarrierData, ShippingCarrierInput, ShippingRateData, ShippingZoneData, ShippingZoneInput, ShippingRateInput, ShippingSettingsProps, ShippingZoneFormProps, ShippingRateFormProps, TaxZoneData, TaxZoneInput, TaxSettingsProps, ShippingMode, ShippoAddress, ShippoParcel, ShippoRate, ShippoLabelResult, ShippoTrackingStatus, ShippoValidationResult, AdminOrderListItem, AdminOrderDetail, AdminOrderItem, AdminProductListItem, AdminProductDetail, AdminProductVariant, AdminCustomerListItem, AdminCustomerDetail, AdminCategoryListItem, AdminListItem, AdminUserListOptions, UsersTableProps, UseAdminUsersReturn, UseAdminPermissionsReturn, AdminInviteData, AdminInviteHookResult, InviteUserDialogProps, AdminAcceptInviteFormProps, AdminLayoutProps, AdminGuardProps, AdminLoginFormProps, AdminNavProps, AdminHeaderProps, StatsCardsProps, RecentOrdersProps, LowStockAlertProps, ProductTableProps, ProductFormProps, InventoryEditorProps, OrderTableProps, OrderDetailsProps, RefundDialogProps, StoreSettingsProps, CustomerTableProps, CustomerDetailsProps, AdminAuthConfigOptions, UseAdminAuthReturn, UseAdminStatsReturn, UseAdminOrdersReturn, UseAdminProductsReturn, UseAdminCustomersReturn, UseAdminCategoriesReturn, } from './types';
58
58
  export { createAdminAuthOptions, adminAuthConfig, adminAuthHandlers, createAdminNextAuthHandler, getAdminSession, } from './config';
59
- export { authenticateAdmin, createAdmin, updateAdminPassword, findAdminForSession, findAdminByEmail, findAdminById, updateAdmin, adminEmailExists, countAdmins, } from './server';
59
+ export { authenticateAdmin, createAdmin, updateAdminPassword, findAdminForSession, findAdminByEmail, findAdminById, updateAdmin, adminEmailExists, countAdmins, requestAdminPasswordReset, validateAdminResetToken, resetAdminPassword, deleteAdminPasswordResetTokens, cleanupExpiredAdminResetTokens, listAdmins, countActiveOwners, deactivateAdmin, reactivateAdmin, hardDeleteAdmin, inviteAdmin, resendAdminInvite, cancelAdminInvite, changeAdminRole, validateInviteToken, acceptAdminInvite, deleteAdminInviteTokens, cleanupExpiredInviteTokens, changeOwnPassword, updateOwnProfile, } from './server';
60
60
  export { createAdminAuthHandlers, getProducts, createProduct, getProduct, updateProduct, deleteProduct, addVariant, updateVariantHandler, deleteVariantHandler, getOrders, getOrder, updateOrder, processRefund, getStats, getCategories, createCategory, getCategory, updateCategory, deleteCategory, getCustomers, getCustomer, setupAdmin, checkAdminExists, getSettings, updateSettings, getStripeStatus, getShippingCarriers, createShippingCarrier, getShippingCarrier, updateShippingCarrier, deleteShippingCarrier, getShippingZones, createShippingZone, getShippingZone, updateShippingZone, deleteShippingZone, createShippingRate, updateShippingRate, deleteShippingRate, getTaxZones, createTaxZone, getTaxZone, updateTaxZone, deleteTaxZone, } from './api';
61
- export { useAdminAuth, useAdminStats, useAdminProducts, useAdminOrders, useAdminCategories, useAdminCustomers, } from './hooks';
61
+ export { useAdminAuth, useAdminStats, useAdminProducts, useAdminOrders, useAdminCategories, useAdminCustomers, useAdminUsers, useAdminPermissions, useAdminMe, } from './hooks';
62
62
  export type { CategoryTreeItem } from './hooks/useAdminCategories';
63
- export { AdminGuard, AdminLoginForm, AdminSetupForm, AdminLayout, AdminNav, AdminHeader, StatsCards, RecentOrders, LowStockAlert, RevenueChart, OrderStatusChart, ProductTable, ProductForm, InventoryEditor, CategorySelect, CategoryForm, SEOPreview, TagInput, VariantManager, OrderTable, OrderDetails, RefundDialog, StoreSettings, LogoUpload, PaymentSettings, ShippingSettings, TaxSettings, CustomerTable, CustomerDetails, DeleteConfirmDialog, } from './components';
63
+ export { AdminGuard, AdminLoginForm, AdminSetupForm, AdminLayout, AdminNav, AdminHeader, StatsCards, RecentOrders, LowStockAlert, RevenueChart, OrderStatusChart, ProductTable, ProductForm, InventoryEditor, CategorySelect, CategoryForm, SEOPreview, TagInput, VariantManager, OrderTable, OrderDetails, RefundDialog, StoreSettings, LogoUpload, PaymentSettings, ShippingSettings, TaxSettings, CustomerTable, CustomerDetails, UsersTable, InviteUserDialog, AdminAcceptInviteForm, AdminAccountPage, DeleteConfirmDialog, } from './components';
64
64
  export type { AdminSetupFormProps, RevenueChartProps, OrderStatusChartProps, CategorySelectProps, CategoryFormProps, SEOPreviewProps, TagInputProps, VariantManagerProps, VariantOption, VariantData, DeleteConfirmDialogProps, LogoUploadProps, } from './components';
65
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
@@ -61,7 +61,15 @@ export { createAdminAuthOptions, adminAuthConfig, adminAuthHandlers, createAdmin
61
61
  // =============================================================================
62
62
  // Server-side Services
63
63
  // =============================================================================
64
- export { authenticateAdmin, createAdmin, updateAdminPassword, findAdminForSession, findAdminByEmail, findAdminById, updateAdmin, adminEmailExists, countAdmins, } from './server';
64
+ export { authenticateAdmin, createAdmin, updateAdminPassword, findAdminForSession, findAdminByEmail, findAdminById, updateAdmin, adminEmailExists, countAdmins,
65
+ // Password reset (Phase 1)
66
+ requestAdminPasswordReset, validateAdminResetToken, resetAdminPassword, deleteAdminPasswordResetTokens, cleanupExpiredAdminResetTokens,
67
+ // User management (Phase 2)
68
+ listAdmins, countActiveOwners, deactivateAdmin, reactivateAdmin, hardDeleteAdmin,
69
+ // Phase 3 — invite flow + role change
70
+ inviteAdmin, resendAdminInvite, cancelAdminInvite, changeAdminRole, validateInviteToken, acceptAdminInvite, deleteAdminInviteTokens, cleanupExpiredInviteTokens,
71
+ // Phase 4 — self-service
72
+ changeOwnPassword, updateOwnProfile, } from './server';
65
73
  // =============================================================================
66
74
  // API Route Handlers (re-exported for convenience)
67
75
  // Can also import from '@rovela-ai/sdk/admin/api' for individual handlers
@@ -84,7 +92,11 @@ getTaxZones, createTaxZone, getTaxZone, updateTaxZone, deleteTaxZone, } from './
84
92
  // =============================================================================
85
93
  // React Hooks
86
94
  // =============================================================================
87
- export { useAdminAuth, useAdminStats, useAdminProducts, useAdminOrders, useAdminCategories, useAdminCustomers, } from './hooks';
95
+ export { useAdminAuth, useAdminStats, useAdminProducts, useAdminOrders, useAdminCategories, useAdminCustomers,
96
+ // Phase 2
97
+ useAdminUsers, useAdminPermissions,
98
+ // Phase 4
99
+ useAdminMe, } from './hooks';
88
100
  // =============================================================================
89
101
  // React Components
90
102
  // =============================================================================
@@ -111,6 +123,12 @@ ShippingSettings,
111
123
  TaxSettings,
112
124
  // Customers
113
125
  CustomerTable, CustomerDetails,
126
+ // User management (Phase 2)
127
+ UsersTable,
128
+ // User management (Phase 3)
129
+ InviteUserDialog, AdminAcceptInviteForm,
130
+ // Self-service (Phase 4)
131
+ AdminAccountPage,
114
132
  // Utility
115
133
  DeleteConfirmDialog, } from './components';
116
134
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAkHH,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,UAAU,CAAA;AAEjB,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,UAAU,CAAA;AAEjB,gFAAgF;AAChF,mDAAmD;AACnD,0EAA0E;AAC1E,gFAAgF;AAEhF,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW;AACX,oCAAoC;AACpC,UAAU;AACV,gCAAgC;AAChC,gBAAgB;AAChB,WAAW;AACX,WAAW,EACX,cAAc;AACd,gBAAgB;AAChB,eAAe;AACf,oBAAoB;AACpB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB;AACrB,yBAAyB;AACzB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB;AAClB,YAAY;AACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,OAAO,CAAA;AAEd,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,SAAS,CAAA;AAIhB,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,OAAO;AACL,OAAO;AACP,UAAU,EACV,cAAc,EACd,cAAc;AACd,SAAS;AACT,WAAW,EACX,QAAQ,EACR,WAAW;AACX,YAAY;AACZ,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB;AAChB,WAAW;AACX,YAAY,EACZ,WAAW,EACX,eAAe;AACf,aAAa;AACb,cAAc,EACd,YAAY;AACZ,gCAAgC;AAChC,UAAU,EACV,QAAQ,EACR,cAAc;AACd,SAAS;AACT,UAAU,EACV,YAAY,EACZ,YAAY;AACZ,WAAW;AACX,aAAa,EACb,UAAU,EACV,eAAe;AACf,WAAW;AACX,gBAAgB;AAChB,MAAM;AACN,WAAW;AACX,YAAY;AACZ,aAAa,EACb,eAAe;AACf,UAAU;AACV,mBAAmB,GACpB,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}