@rovela-ai/sdk 0.4.0 → 0.4.1

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 (976) hide show
  1. package/dist/checkout/server/create-checkout-session.d.ts +10 -1
  2. package/dist/checkout/server/create-checkout-session.d.ts.map +1 -1
  3. package/dist/checkout/server/create-checkout-session.js +28 -17
  4. package/dist/checkout/server/create-checkout-session.js.map +1 -1
  5. package/dist/checkout/server/handle-webhook.js +22 -2
  6. package/dist/checkout/server/handle-webhook.js.map +1 -1
  7. package/dist/checkout/server/order-service.d.ts +7 -1
  8. package/dist/checkout/server/order-service.d.ts.map +1 -1
  9. package/dist/checkout/server/order-service.js +59 -12
  10. package/dist/checkout/server/order-service.js.map +1 -1
  11. package/package.json +1 -1
  12. package/dist/admin/api/accept-invite.d.ts +0 -65
  13. package/dist/admin/api/accept-invite.d.ts.map +0 -1
  14. package/dist/admin/api/accept-invite.js +0 -115
  15. package/dist/admin/api/accept-invite.js.map +0 -1
  16. package/dist/admin/api/auth.d.ts +0 -32
  17. package/dist/admin/api/auth.d.ts.map +0 -1
  18. package/dist/admin/api/auth.js +0 -37
  19. package/dist/admin/api/auth.js.map +0 -1
  20. package/dist/admin/api/categories.d.ts +0 -68
  21. package/dist/admin/api/categories.d.ts.map +0 -1
  22. package/dist/admin/api/categories.js +0 -266
  23. package/dist/admin/api/categories.js.map +0 -1
  24. package/dist/admin/api/check.d.ts +0 -38
  25. package/dist/admin/api/check.d.ts.map +0 -1
  26. package/dist/admin/api/check.js +0 -49
  27. package/dist/admin/api/check.js.map +0 -1
  28. package/dist/admin/api/customers.d.ts +0 -77
  29. package/dist/admin/api/customers.d.ts.map +0 -1
  30. package/dist/admin/api/customers.js +0 -219
  31. package/dist/admin/api/customers.js.map +0 -1
  32. package/dist/admin/api/forgot-password.d.ts +0 -39
  33. package/dist/admin/api/forgot-password.d.ts.map +0 -1
  34. package/dist/admin/api/forgot-password.js +0 -66
  35. package/dist/admin/api/forgot-password.js.map +0 -1
  36. package/dist/admin/api/index.d.ts +0 -109
  37. package/dist/admin/api/index.d.ts.map +0 -1
  38. package/dist/admin/api/index.js +0 -128
  39. package/dist/admin/api/index.js.map +0 -1
  40. package/dist/admin/api/linked-customer.d.ts +0 -32
  41. package/dist/admin/api/linked-customer.d.ts.map +0 -1
  42. package/dist/admin/api/linked-customer.js +0 -45
  43. package/dist/admin/api/linked-customer.js.map +0 -1
  44. package/dist/admin/api/me.d.ts +0 -72
  45. package/dist/admin/api/me.d.ts.map +0 -1
  46. package/dist/admin/api/me.js +0 -177
  47. package/dist/admin/api/me.js.map +0 -1
  48. package/dist/admin/api/orders.d.ts +0 -91
  49. package/dist/admin/api/orders.d.ts.map +0 -1
  50. package/dist/admin/api/orders.js +0 -390
  51. package/dist/admin/api/orders.js.map +0 -1
  52. package/dist/admin/api/products-bulk.d.ts +0 -38
  53. package/dist/admin/api/products-bulk.d.ts.map +0 -1
  54. package/dist/admin/api/products-bulk.js +0 -135
  55. package/dist/admin/api/products-bulk.js.map +0 -1
  56. package/dist/admin/api/products-stats.d.ts +0 -34
  57. package/dist/admin/api/products-stats.d.ts.map +0 -1
  58. package/dist/admin/api/products-stats.js +0 -43
  59. package/dist/admin/api/products-stats.js.map +0 -1
  60. package/dist/admin/api/products.d.ts +0 -104
  61. package/dist/admin/api/products.d.ts.map +0 -1
  62. package/dist/admin/api/products.js +0 -491
  63. package/dist/admin/api/products.js.map +0 -1
  64. package/dist/admin/api/refund.d.ts +0 -29
  65. package/dist/admin/api/refund.d.ts.map +0 -1
  66. package/dist/admin/api/refund.js +0 -142
  67. package/dist/admin/api/refund.js.map +0 -1
  68. package/dist/admin/api/reset-password.d.ts +0 -49
  69. package/dist/admin/api/reset-password.d.ts.map +0 -1
  70. package/dist/admin/api/reset-password.js +0 -99
  71. package/dist/admin/api/reset-password.js.map +0 -1
  72. package/dist/admin/api/return.d.ts +0 -47
  73. package/dist/admin/api/return.d.ts.map +0 -1
  74. package/dist/admin/api/return.js +0 -186
  75. package/dist/admin/api/return.js.map +0 -1
  76. package/dist/admin/api/settings.d.ts +0 -49
  77. package/dist/admin/api/settings.d.ts.map +0 -1
  78. package/dist/admin/api/settings.js +0 -201
  79. package/dist/admin/api/settings.js.map +0 -1
  80. package/dist/admin/api/setup-guide.d.ts +0 -78
  81. package/dist/admin/api/setup-guide.d.ts.map +0 -1
  82. package/dist/admin/api/setup-guide.js +0 -235
  83. package/dist/admin/api/setup-guide.js.map +0 -1
  84. package/dist/admin/api/setup.d.ts +0 -60
  85. package/dist/admin/api/setup.d.ts.map +0 -1
  86. package/dist/admin/api/setup.js +0 -126
  87. package/dist/admin/api/setup.js.map +0 -1
  88. package/dist/admin/api/shipping.d.ts +0 -287
  89. package/dist/admin/api/shipping.d.ts.map +0 -1
  90. package/dist/admin/api/shipping.js +0 -746
  91. package/dist/admin/api/shipping.js.map +0 -1
  92. package/dist/admin/api/stats.d.ts +0 -43
  93. package/dist/admin/api/stats.d.ts.map +0 -1
  94. package/dist/admin/api/stats.js +0 -92
  95. package/dist/admin/api/stats.js.map +0 -1
  96. package/dist/admin/api/stripe-status.d.ts +0 -39
  97. package/dist/admin/api/stripe-status.d.ts.map +0 -1
  98. package/dist/admin/api/stripe-status.js +0 -99
  99. package/dist/admin/api/stripe-status.js.map +0 -1
  100. package/dist/admin/api/tax-zones.d.ts +0 -97
  101. package/dist/admin/api/tax-zones.d.ts.map +0 -1
  102. package/dist/admin/api/tax-zones.js +0 -265
  103. package/dist/admin/api/tax-zones.js.map +0 -1
  104. package/dist/admin/api/users.d.ts +0 -142
  105. package/dist/admin/api/users.d.ts.map +0 -1
  106. package/dist/admin/api/users.js +0 -355
  107. package/dist/admin/api/users.js.map +0 -1
  108. package/dist/admin/components/AdminAcceptInviteForm.d.ts +0 -3
  109. package/dist/admin/components/AdminAcceptInviteForm.d.ts.map +0 -1
  110. package/dist/admin/components/AdminAcceptInviteForm.js +0 -137
  111. package/dist/admin/components/AdminAcceptInviteForm.js.map +0 -1
  112. package/dist/admin/components/AdminAccountPage.d.ts +0 -10
  113. package/dist/admin/components/AdminAccountPage.d.ts.map +0 -1
  114. package/dist/admin/components/AdminAccountPage.js +0 -126
  115. package/dist/admin/components/AdminAccountPage.js.map +0 -1
  116. package/dist/admin/components/AdminBarBanner.d.ts +0 -2
  117. package/dist/admin/components/AdminBarBanner.d.ts.map +0 -1
  118. package/dist/admin/components/AdminBarBanner.js +0 -266
  119. package/dist/admin/components/AdminBarBanner.js.map +0 -1
  120. package/dist/admin/components/AdminForgotPasswordForm.d.ts +0 -8
  121. package/dist/admin/components/AdminForgotPasswordForm.d.ts.map +0 -1
  122. package/dist/admin/components/AdminForgotPasswordForm.js +0 -59
  123. package/dist/admin/components/AdminForgotPasswordForm.js.map +0 -1
  124. package/dist/admin/components/AdminGuard.d.ts +0 -40
  125. package/dist/admin/components/AdminGuard.d.ts.map +0 -1
  126. package/dist/admin/components/AdminGuard.js +0 -94
  127. package/dist/admin/components/AdminGuard.js.map +0 -1
  128. package/dist/admin/components/AdminLayout.d.ts +0 -40
  129. package/dist/admin/components/AdminLayout.d.ts.map +0 -1
  130. package/dist/admin/components/AdminLayout.js +0 -39
  131. package/dist/admin/components/AdminLayout.js.map +0 -1
  132. package/dist/admin/components/AdminLoginForm.d.ts +0 -18
  133. package/dist/admin/components/AdminLoginForm.d.ts.map +0 -1
  134. package/dist/admin/components/AdminLoginForm.js +0 -61
  135. package/dist/admin/components/AdminLoginForm.js.map +0 -1
  136. package/dist/admin/components/AdminNav.d.ts +0 -44
  137. package/dist/admin/components/AdminNav.d.ts.map +0 -1
  138. package/dist/admin/components/AdminNav.js +0 -175
  139. package/dist/admin/components/AdminNav.js.map +0 -1
  140. package/dist/admin/components/AdminResetPasswordForm.d.ts +0 -12
  141. package/dist/admin/components/AdminResetPasswordForm.d.ts.map +0 -1
  142. package/dist/admin/components/AdminResetPasswordForm.js +0 -134
  143. package/dist/admin/components/AdminResetPasswordForm.js.map +0 -1
  144. package/dist/admin/components/AdminSelect.d.ts +0 -47
  145. package/dist/admin/components/AdminSelect.d.ts.map +0 -1
  146. package/dist/admin/components/AdminSelect.js +0 -71
  147. package/dist/admin/components/AdminSelect.js.map +0 -1
  148. package/dist/admin/components/AdminSetupForm.d.ts +0 -28
  149. package/dist/admin/components/AdminSetupForm.d.ts.map +0 -1
  150. package/dist/admin/components/AdminSetupForm.js +0 -85
  151. package/dist/admin/components/AdminSetupForm.js.map +0 -1
  152. package/dist/admin/components/AdminToast.d.ts +0 -31
  153. package/dist/admin/components/AdminToast.d.ts.map +0 -1
  154. package/dist/admin/components/AdminToast.js +0 -83
  155. package/dist/admin/components/AdminToast.js.map +0 -1
  156. package/dist/admin/components/AdminUserMenu.d.ts +0 -14
  157. package/dist/admin/components/AdminUserMenu.d.ts.map +0 -1
  158. package/dist/admin/components/AdminUserMenu.js +0 -34
  159. package/dist/admin/components/AdminUserMenu.js.map +0 -1
  160. package/dist/admin/components/CategoryForm.d.ts +0 -30
  161. package/dist/admin/components/CategoryForm.d.ts.map +0 -1
  162. package/dist/admin/components/CategoryForm.js +0 -152
  163. package/dist/admin/components/CategoryForm.js.map +0 -1
  164. package/dist/admin/components/CategorySelect.d.ts +0 -32
  165. package/dist/admin/components/CategorySelect.d.ts.map +0 -1
  166. package/dist/admin/components/CategorySelect.js +0 -139
  167. package/dist/admin/components/CategorySelect.js.map +0 -1
  168. package/dist/admin/components/CustomerDetails.d.ts +0 -15
  169. package/dist/admin/components/CustomerDetails.d.ts.map +0 -1
  170. package/dist/admin/components/CustomerDetails.js +0 -177
  171. package/dist/admin/components/CustomerDetails.js.map +0 -1
  172. package/dist/admin/components/CustomerTable.d.ts +0 -13
  173. package/dist/admin/components/CustomerTable.d.ts.map +0 -1
  174. package/dist/admin/components/CustomerTable.js +0 -112
  175. package/dist/admin/components/CustomerTable.js.map +0 -1
  176. package/dist/admin/components/DeleteConfirmDialog.d.ts +0 -56
  177. package/dist/admin/components/DeleteConfirmDialog.d.ts.map +0 -1
  178. package/dist/admin/components/DeleteConfirmDialog.js +0 -46
  179. package/dist/admin/components/DeleteConfirmDialog.js.map +0 -1
  180. package/dist/admin/components/ExampleContentBanner.d.ts +0 -2
  181. package/dist/admin/components/ExampleContentBanner.d.ts.map +0 -1
  182. package/dist/admin/components/ExampleContentBanner.js +0 -153
  183. package/dist/admin/components/ExampleContentBanner.js.map +0 -1
  184. package/dist/admin/components/InventoryEditor.d.ts +0 -15
  185. package/dist/admin/components/InventoryEditor.d.ts.map +0 -1
  186. package/dist/admin/components/InventoryEditor.js +0 -86
  187. package/dist/admin/components/InventoryEditor.js.map +0 -1
  188. package/dist/admin/components/InviteUserDialog.d.ts +0 -3
  189. package/dist/admin/components/InviteUserDialog.d.ts.map +0 -1
  190. package/dist/admin/components/InviteUserDialog.js +0 -126
  191. package/dist/admin/components/InviteUserDialog.js.map +0 -1
  192. package/dist/admin/components/LogoUpload.d.ts +0 -22
  193. package/dist/admin/components/LogoUpload.d.ts.map +0 -1
  194. package/dist/admin/components/LogoUpload.js +0 -210
  195. package/dist/admin/components/LogoUpload.js.map +0 -1
  196. package/dist/admin/components/LowStockAlert.d.ts +0 -11
  197. package/dist/admin/components/LowStockAlert.d.ts.map +0 -1
  198. package/dist/admin/components/LowStockAlert.js +0 -33
  199. package/dist/admin/components/LowStockAlert.js.map +0 -1
  200. package/dist/admin/components/OrderDetails.d.ts +0 -14
  201. package/dist/admin/components/OrderDetails.d.ts.map +0 -1
  202. package/dist/admin/components/OrderDetails.js +0 -210
  203. package/dist/admin/components/OrderDetails.js.map +0 -1
  204. package/dist/admin/components/OrderStatusChart.d.ts +0 -21
  205. package/dist/admin/components/OrderStatusChart.d.ts.map +0 -1
  206. package/dist/admin/components/OrderStatusChart.js +0 -61
  207. package/dist/admin/components/OrderStatusChart.js.map +0 -1
  208. package/dist/admin/components/OrderTable.d.ts +0 -13
  209. package/dist/admin/components/OrderTable.d.ts.map +0 -1
  210. package/dist/admin/components/OrderTable.js +0 -117
  211. package/dist/admin/components/OrderTable.js.map +0 -1
  212. package/dist/admin/components/PaymentSettings.d.ts +0 -13
  213. package/dist/admin/components/PaymentSettings.d.ts.map +0 -1
  214. package/dist/admin/components/PaymentSettings.js +0 -117
  215. package/dist/admin/components/PaymentSettings.js.map +0 -1
  216. package/dist/admin/components/PeriodSelector.d.ts +0 -9
  217. package/dist/admin/components/PeriodSelector.d.ts.map +0 -1
  218. package/dist/admin/components/PeriodSelector.js +0 -19
  219. package/dist/admin/components/PeriodSelector.js.map +0 -1
  220. package/dist/admin/components/PermissionsMatrix.d.ts +0 -8
  221. package/dist/admin/components/PermissionsMatrix.d.ts.map +0 -1
  222. package/dist/admin/components/PermissionsMatrix.js +0 -70
  223. package/dist/admin/components/PermissionsMatrix.js.map +0 -1
  224. package/dist/admin/components/PrimaryMetricsRow.d.ts +0 -11
  225. package/dist/admin/components/PrimaryMetricsRow.d.ts.map +0 -1
  226. package/dist/admin/components/PrimaryMetricsRow.js +0 -73
  227. package/dist/admin/components/PrimaryMetricsRow.js.map +0 -1
  228. package/dist/admin/components/ProductForm.d.ts +0 -18
  229. package/dist/admin/components/ProductForm.d.ts.map +0 -1
  230. package/dist/admin/components/ProductForm.js +0 -251
  231. package/dist/admin/components/ProductForm.js.map +0 -1
  232. package/dist/admin/components/ProductTable.d.ts +0 -14
  233. package/dist/admin/components/ProductTable.d.ts.map +0 -1
  234. package/dist/admin/components/ProductTable.js +0 -384
  235. package/dist/admin/components/ProductTable.js.map +0 -1
  236. package/dist/admin/components/RecentOrders.d.ts +0 -11
  237. package/dist/admin/components/RecentOrders.d.ts.map +0 -1
  238. package/dist/admin/components/RecentOrders.js +0 -63
  239. package/dist/admin/components/RecentOrders.js.map +0 -1
  240. package/dist/admin/components/RefundDialog.d.ts +0 -17
  241. package/dist/admin/components/RefundDialog.d.ts.map +0 -1
  242. package/dist/admin/components/RefundDialog.js +0 -90
  243. package/dist/admin/components/RefundDialog.js.map +0 -1
  244. package/dist/admin/components/RevenueChart.d.ts +0 -23
  245. package/dist/admin/components/RevenueChart.d.ts.map +0 -1
  246. package/dist/admin/components/RevenueChart.js +0 -75
  247. package/dist/admin/components/RevenueChart.js.map +0 -1
  248. package/dist/admin/components/SEOPreview.d.ts +0 -33
  249. package/dist/admin/components/SEOPreview.d.ts.map +0 -1
  250. package/dist/admin/components/SEOPreview.js +0 -30
  251. package/dist/admin/components/SEOPreview.js.map +0 -1
  252. package/dist/admin/components/SecondaryMetricsRow.d.ts +0 -14
  253. package/dist/admin/components/SecondaryMetricsRow.d.ts.map +0 -1
  254. package/dist/admin/components/SecondaryMetricsRow.js +0 -45
  255. package/dist/admin/components/SecondaryMetricsRow.js.map +0 -1
  256. package/dist/admin/components/SetupGuide.d.ts +0 -4
  257. package/dist/admin/components/SetupGuide.d.ts.map +0 -1
  258. package/dist/admin/components/SetupGuide.js +0 -244
  259. package/dist/admin/components/SetupGuide.js.map +0 -1
  260. package/dist/admin/components/ShippingSettings.d.ts +0 -3
  261. package/dist/admin/components/ShippingSettings.d.ts.map +0 -1
  262. package/dist/admin/components/ShippingSettings.js +0 -553
  263. package/dist/admin/components/ShippingSettings.js.map +0 -1
  264. package/dist/admin/components/StatsCards.d.ts +0 -18
  265. package/dist/admin/components/StatsCards.d.ts.map +0 -1
  266. package/dist/admin/components/StatsCards.js +0 -71
  267. package/dist/admin/components/StatsCards.js.map +0 -1
  268. package/dist/admin/components/StoreSettings.d.ts +0 -19
  269. package/dist/admin/components/StoreSettings.d.ts.map +0 -1
  270. package/dist/admin/components/StoreSettings.js +0 -149
  271. package/dist/admin/components/StoreSettings.js.map +0 -1
  272. package/dist/admin/components/TagInput.d.ts +0 -29
  273. package/dist/admin/components/TagInput.d.ts.map +0 -1
  274. package/dist/admin/components/TagInput.js +0 -69
  275. package/dist/admin/components/TagInput.js.map +0 -1
  276. package/dist/admin/components/TaxSettings.d.ts +0 -12
  277. package/dist/admin/components/TaxSettings.d.ts.map +0 -1
  278. package/dist/admin/components/TaxSettings.js +0 -272
  279. package/dist/admin/components/TaxSettings.js.map +0 -1
  280. package/dist/admin/components/UsersTable.d.ts +0 -3
  281. package/dist/admin/components/UsersTable.d.ts.map +0 -1
  282. package/dist/admin/components/UsersTable.js +0 -388
  283. package/dist/admin/components/UsersTable.js.map +0 -1
  284. package/dist/admin/components/VariantManager.d.ts +0 -44
  285. package/dist/admin/components/VariantManager.d.ts.map +0 -1
  286. package/dist/admin/components/VariantManager.js +0 -324
  287. package/dist/admin/components/VariantManager.js.map +0 -1
  288. package/dist/admin/components/index.d.ts +0 -69
  289. package/dist/admin/components/index.d.ts.map +0 -1
  290. package/dist/admin/components/index.js +0 -86
  291. package/dist/admin/components/index.js.map +0 -1
  292. package/dist/admin/config.d.ts +0 -51
  293. package/dist/admin/config.d.ts.map +0 -1
  294. package/dist/admin/config.js +0 -224
  295. package/dist/admin/config.js.map +0 -1
  296. package/dist/admin/hooks/fetchAdminApi.d.ts +0 -65
  297. package/dist/admin/hooks/fetchAdminApi.d.ts.map +0 -1
  298. package/dist/admin/hooks/fetchAdminApi.js +0 -96
  299. package/dist/admin/hooks/fetchAdminApi.js.map +0 -1
  300. package/dist/admin/hooks/index.d.ts +0 -24
  301. package/dist/admin/hooks/index.d.ts.map +0 -1
  302. package/dist/admin/hooks/index.js +0 -19
  303. package/dist/admin/hooks/index.js.map +0 -1
  304. package/dist/admin/hooks/useAdminAuth.d.ts +0 -25
  305. package/dist/admin/hooks/useAdminAuth.d.ts.map +0 -1
  306. package/dist/admin/hooks/useAdminAuth.js +0 -183
  307. package/dist/admin/hooks/useAdminAuth.js.map +0 -1
  308. package/dist/admin/hooks/useAdminCategories.d.ts +0 -9
  309. package/dist/admin/hooks/useAdminCategories.d.ts.map +0 -1
  310. package/dist/admin/hooks/useAdminCategories.js +0 -112
  311. package/dist/admin/hooks/useAdminCategories.js.map +0 -1
  312. package/dist/admin/hooks/useAdminCustomers.d.ts +0 -3
  313. package/dist/admin/hooks/useAdminCustomers.d.ts.map +0 -1
  314. package/dist/admin/hooks/useAdminCustomers.js +0 -110
  315. package/dist/admin/hooks/useAdminCustomers.js.map +0 -1
  316. package/dist/admin/hooks/useAdminMe.d.ts +0 -31
  317. package/dist/admin/hooks/useAdminMe.d.ts.map +0 -1
  318. package/dist/admin/hooks/useAdminMe.js +0 -78
  319. package/dist/admin/hooks/useAdminMe.js.map +0 -1
  320. package/dist/admin/hooks/useAdminOrders.d.ts +0 -3
  321. package/dist/admin/hooks/useAdminOrders.d.ts.map +0 -1
  322. package/dist/admin/hooks/useAdminOrders.js +0 -118
  323. package/dist/admin/hooks/useAdminOrders.js.map +0 -1
  324. package/dist/admin/hooks/useAdminPermissions.d.ts +0 -3
  325. package/dist/admin/hooks/useAdminPermissions.d.ts.map +0 -1
  326. package/dist/admin/hooks/useAdminPermissions.js +0 -51
  327. package/dist/admin/hooks/useAdminPermissions.js.map +0 -1
  328. package/dist/admin/hooks/useAdminProductMetrics.d.ts +0 -3
  329. package/dist/admin/hooks/useAdminProductMetrics.d.ts.map +0 -1
  330. package/dist/admin/hooks/useAdminProductMetrics.js +0 -32
  331. package/dist/admin/hooks/useAdminProductMetrics.js.map +0 -1
  332. package/dist/admin/hooks/useAdminProducts.d.ts +0 -3
  333. package/dist/admin/hooks/useAdminProducts.d.ts.map +0 -1
  334. package/dist/admin/hooks/useAdminProducts.js +0 -132
  335. package/dist/admin/hooks/useAdminProducts.js.map +0 -1
  336. package/dist/admin/hooks/useAdminSession.d.ts +0 -23
  337. package/dist/admin/hooks/useAdminSession.d.ts.map +0 -1
  338. package/dist/admin/hooks/useAdminSession.js +0 -117
  339. package/dist/admin/hooks/useAdminSession.js.map +0 -1
  340. package/dist/admin/hooks/useAdminStats.d.ts +0 -47
  341. package/dist/admin/hooks/useAdminStats.d.ts.map +0 -1
  342. package/dist/admin/hooks/useAdminStats.js +0 -128
  343. package/dist/admin/hooks/useAdminStats.js.map +0 -1
  344. package/dist/admin/hooks/useAdminUsers.d.ts +0 -3
  345. package/dist/admin/hooks/useAdminUsers.d.ts.map +0 -1
  346. package/dist/admin/hooks/useAdminUsers.js +0 -177
  347. package/dist/admin/hooks/useAdminUsers.js.map +0 -1
  348. package/dist/admin/hooks/useLinkedCustomerStatus.d.ts +0 -3
  349. package/dist/admin/hooks/useLinkedCustomerStatus.d.ts.map +0 -1
  350. package/dist/admin/hooks/useLinkedCustomerStatus.js +0 -48
  351. package/dist/admin/hooks/useLinkedCustomerStatus.js.map +0 -1
  352. package/dist/admin/hooks/useSetupGuide.d.ts +0 -45
  353. package/dist/admin/hooks/useSetupGuide.d.ts.map +0 -1
  354. package/dist/admin/hooks/useSetupGuide.js +0 -60
  355. package/dist/admin/hooks/useSetupGuide.js.map +0 -1
  356. package/dist/admin/index.d.ts +0 -66
  357. package/dist/admin/index.d.ts.map +0 -1
  358. package/dist/admin/index.js +0 -144
  359. package/dist/admin/index.js.map +0 -1
  360. package/dist/admin/permissions.d.ts +0 -79
  361. package/dist/admin/permissions.d.ts.map +0 -1
  362. package/dist/admin/permissions.js +0 -182
  363. package/dist/admin/permissions.js.map +0 -1
  364. package/dist/admin/server/admin-invite.d.ts +0 -122
  365. package/dist/admin/server/admin-invite.d.ts.map +0 -1
  366. package/dist/admin/server/admin-invite.js +0 -235
  367. package/dist/admin/server/admin-invite.js.map +0 -1
  368. package/dist/admin/server/admin-password-reset.d.ts +0 -87
  369. package/dist/admin/server/admin-password-reset.d.ts.map +0 -1
  370. package/dist/admin/server/admin-password-reset.js +0 -220
  371. package/dist/admin/server/admin-password-reset.js.map +0 -1
  372. package/dist/admin/server/admin-self-service.d.ts +0 -86
  373. package/dist/admin/server/admin-self-service.d.ts.map +0 -1
  374. package/dist/admin/server/admin-self-service.js +0 -188
  375. package/dist/admin/server/admin-self-service.js.map +0 -1
  376. package/dist/admin/server/admin-service.d.ts +0 -131
  377. package/dist/admin/server/admin-service.d.ts.map +0 -1
  378. package/dist/admin/server/admin-service.js +0 -278
  379. package/dist/admin/server/admin-service.js.map +0 -1
  380. package/dist/admin/server/admin-session.d.ts +0 -173
  381. package/dist/admin/server/admin-session.d.ts.map +0 -1
  382. package/dist/admin/server/admin-session.js +0 -272
  383. package/dist/admin/server/admin-session.js.map +0 -1
  384. package/dist/admin/server/index.d.ts +0 -17
  385. package/dist/admin/server/index.d.ts.map +0 -1
  386. package/dist/admin/server/index.js +0 -39
  387. package/dist/admin/server/index.js.map +0 -1
  388. package/dist/admin/server/user-management.d.ts +0 -221
  389. package/dist/admin/server/user-management.d.ts.map +0 -1
  390. package/dist/admin/server/user-management.js +0 -838
  391. package/dist/admin/server/user-management.js.map +0 -1
  392. package/dist/admin/types.d.ts +0 -1161
  393. package/dist/admin/types.d.ts.map +0 -1
  394. package/dist/admin/types.js +0 -10
  395. package/dist/admin/types.js.map +0 -1
  396. package/dist/auth/api/auth.d.ts +0 -9
  397. package/dist/auth/api/auth.d.ts.map +0 -1
  398. package/dist/auth/api/auth.js +0 -9
  399. package/dist/auth/api/auth.js.map +0 -1
  400. package/dist/auth/api/forgot-password.d.ts +0 -41
  401. package/dist/auth/api/forgot-password.d.ts.map +0 -1
  402. package/dist/auth/api/forgot-password.js +0 -65
  403. package/dist/auth/api/forgot-password.js.map +0 -1
  404. package/dist/auth/api/index.d.ts +0 -37
  405. package/dist/auth/api/index.d.ts.map +0 -1
  406. package/dist/auth/api/index.js +0 -44
  407. package/dist/auth/api/index.js.map +0 -1
  408. package/dist/auth/api/register.d.ts +0 -41
  409. package/dist/auth/api/register.d.ts.map +0 -1
  410. package/dist/auth/api/register.js +0 -99
  411. package/dist/auth/api/register.js.map +0 -1
  412. package/dist/auth/api/request-refund.d.ts +0 -38
  413. package/dist/auth/api/request-refund.d.ts.map +0 -1
  414. package/dist/auth/api/request-refund.js +0 -142
  415. package/dist/auth/api/request-refund.js.map +0 -1
  416. package/dist/auth/api/request-return.d.ts +0 -39
  417. package/dist/auth/api/request-return.d.ts.map +0 -1
  418. package/dist/auth/api/request-return.js +0 -109
  419. package/dist/auth/api/request-return.js.map +0 -1
  420. package/dist/auth/api/resend-verification.d.ts +0 -41
  421. package/dist/auth/api/resend-verification.d.ts.map +0 -1
  422. package/dist/auth/api/resend-verification.js +0 -68
  423. package/dist/auth/api/resend-verification.js.map +0 -1
  424. package/dist/auth/api/reset-password.d.ts +0 -67
  425. package/dist/auth/api/reset-password.d.ts.map +0 -1
  426. package/dist/auth/api/reset-password.js +0 -106
  427. package/dist/auth/api/reset-password.js.map +0 -1
  428. package/dist/auth/api/verify-email.d.ts +0 -47
  429. package/dist/auth/api/verify-email.d.ts.map +0 -1
  430. package/dist/auth/api/verify-email.js +0 -90
  431. package/dist/auth/api/verify-email.js.map +0 -1
  432. package/dist/auth/components/AuthGuard.d.ts +0 -52
  433. package/dist/auth/components/AuthGuard.d.ts.map +0 -1
  434. package/dist/auth/components/AuthGuard.js +0 -109
  435. package/dist/auth/components/AuthGuard.js.map +0 -1
  436. package/dist/auth/components/ForgotPasswordForm.d.ts +0 -15
  437. package/dist/auth/components/ForgotPasswordForm.d.ts.map +0 -1
  438. package/dist/auth/components/ForgotPasswordForm.js +0 -43
  439. package/dist/auth/components/ForgotPasswordForm.js.map +0 -1
  440. package/dist/auth/components/Label.d.ts +0 -19
  441. package/dist/auth/components/Label.d.ts.map +0 -1
  442. package/dist/auth/components/Label.js +0 -18
  443. package/dist/auth/components/Label.js.map +0 -1
  444. package/dist/auth/components/ResetPasswordForm.d.ts +0 -18
  445. package/dist/auth/components/ResetPasswordForm.d.ts.map +0 -1
  446. package/dist/auth/components/ResetPasswordForm.js +0 -87
  447. package/dist/auth/components/ResetPasswordForm.js.map +0 -1
  448. package/dist/auth/components/SignInForm.d.ts +0 -21
  449. package/dist/auth/components/SignInForm.d.ts.map +0 -1
  450. package/dist/auth/components/SignInForm.js +0 -61
  451. package/dist/auth/components/SignInForm.js.map +0 -1
  452. package/dist/auth/components/SignUpForm.d.ts +0 -18
  453. package/dist/auth/components/SignUpForm.d.ts.map +0 -1
  454. package/dist/auth/components/SignUpForm.js +0 -78
  455. package/dist/auth/components/SignUpForm.js.map +0 -1
  456. package/dist/auth/components/UserMenu.d.ts +0 -18
  457. package/dist/auth/components/UserMenu.d.ts.map +0 -1
  458. package/dist/auth/components/UserMenu.js +0 -73
  459. package/dist/auth/components/UserMenu.js.map +0 -1
  460. package/dist/auth/components/VerifyEmailNotice.d.ts +0 -20
  461. package/dist/auth/components/VerifyEmailNotice.d.ts.map +0 -1
  462. package/dist/auth/components/VerifyEmailNotice.js +0 -57
  463. package/dist/auth/components/VerifyEmailNotice.js.map +0 -1
  464. package/dist/auth/components/index.d.ts +0 -15
  465. package/dist/auth/components/index.d.ts.map +0 -1
  466. package/dist/auth/components/index.js +0 -14
  467. package/dist/auth/components/index.js.map +0 -1
  468. package/dist/auth/config.d.ts +0 -52
  469. package/dist/auth/config.d.ts.map +0 -1
  470. package/dist/auth/config.js +0 -243
  471. package/dist/auth/config.js.map +0 -1
  472. package/dist/auth/hooks/index.d.ts +0 -7
  473. package/dist/auth/hooks/index.d.ts.map +0 -1
  474. package/dist/auth/hooks/index.js +0 -7
  475. package/dist/auth/hooks/index.js.map +0 -1
  476. package/dist/auth/hooks/useAuth.d.ts +0 -30
  477. package/dist/auth/hooks/useAuth.d.ts.map +0 -1
  478. package/dist/auth/hooks/useAuth.js +0 -251
  479. package/dist/auth/hooks/useAuth.js.map +0 -1
  480. package/dist/auth/index.d.ts +0 -55
  481. package/dist/auth/index.d.ts.map +0 -1
  482. package/dist/auth/index.js +0 -67
  483. package/dist/auth/index.js.map +0 -1
  484. package/dist/auth/server/customer-service.d.ts +0 -140
  485. package/dist/auth/server/customer-service.d.ts.map +0 -1
  486. package/dist/auth/server/customer-service.js +0 -266
  487. package/dist/auth/server/customer-service.js.map +0 -1
  488. package/dist/auth/server/customer-session.d.ts +0 -79
  489. package/dist/auth/server/customer-session.d.ts.map +0 -1
  490. package/dist/auth/server/customer-session.js +0 -103
  491. package/dist/auth/server/customer-session.js.map +0 -1
  492. package/dist/auth/server/email-sender.d.ts +0 -64
  493. package/dist/auth/server/email-sender.d.ts.map +0 -1
  494. package/dist/auth/server/email-sender.js +0 -106
  495. package/dist/auth/server/email-sender.js.map +0 -1
  496. package/dist/auth/server/index.d.ts +0 -14
  497. package/dist/auth/server/index.d.ts.map +0 -1
  498. package/dist/auth/server/index.js +0 -17
  499. package/dist/auth/server/index.js.map +0 -1
  500. package/dist/auth/server/password-reset-service.d.ts +0 -87
  501. package/dist/auth/server/password-reset-service.d.ts.map +0 -1
  502. package/dist/auth/server/password-reset-service.js +0 -203
  503. package/dist/auth/server/password-reset-service.js.map +0 -1
  504. package/dist/auth/server/password.d.ts +0 -58
  505. package/dist/auth/server/password.d.ts.map +0 -1
  506. package/dist/auth/server/password.js +0 -85
  507. package/dist/auth/server/password.js.map +0 -1
  508. package/dist/auth/server/verification-service.d.ts +0 -88
  509. package/dist/auth/server/verification-service.d.ts.map +0 -1
  510. package/dist/auth/server/verification-service.js +0 -231
  511. package/dist/auth/server/verification-service.js.map +0 -1
  512. package/dist/auth/types.d.ts +0 -311
  513. package/dist/auth/types.d.ts.map +0 -1
  514. package/dist/auth/types.js +0 -7
  515. package/dist/auth/types.js.map +0 -1
  516. package/dist/cart/CartProvider.d.ts +0 -65
  517. package/dist/cart/CartProvider.d.ts.map +0 -1
  518. package/dist/cart/CartProvider.js +0 -96
  519. package/dist/cart/CartProvider.js.map +0 -1
  520. package/dist/cart/components/AddToCartButton.d.ts +0 -77
  521. package/dist/cart/components/AddToCartButton.d.ts.map +0 -1
  522. package/dist/cart/components/AddToCartButton.js +0 -122
  523. package/dist/cart/components/AddToCartButton.js.map +0 -1
  524. package/dist/cart/components/CartDrawer.d.ts +0 -71
  525. package/dist/cart/components/CartDrawer.d.ts.map +0 -1
  526. package/dist/cart/components/CartDrawer.js +0 -117
  527. package/dist/cart/components/CartDrawer.js.map +0 -1
  528. package/dist/cart/components/CartIcon.d.ts +0 -36
  529. package/dist/cart/components/CartIcon.d.ts.map +0 -1
  530. package/dist/cart/components/CartIcon.js +0 -68
  531. package/dist/cart/components/CartIcon.js.map +0 -1
  532. package/dist/cart/components/CartItem.d.ts +0 -52
  533. package/dist/cart/components/CartItem.d.ts.map +0 -1
  534. package/dist/cart/components/CartItem.js +0 -55
  535. package/dist/cart/components/CartItem.js.map +0 -1
  536. package/dist/cart/components/CartSummary.d.ts +0 -43
  537. package/dist/cart/components/CartSummary.d.ts.map +0 -1
  538. package/dist/cart/components/CartSummary.js +0 -60
  539. package/dist/cart/components/CartSummary.js.map +0 -1
  540. package/dist/cart/components/QuantitySelector.d.ts +0 -39
  541. package/dist/cart/components/QuantitySelector.d.ts.map +0 -1
  542. package/dist/cart/components/QuantitySelector.js +0 -85
  543. package/dist/cart/components/QuantitySelector.js.map +0 -1
  544. package/dist/cart/components/index.d.ts +0 -18
  545. package/dist/cart/components/index.d.ts.map +0 -1
  546. package/dist/cart/components/index.js +0 -12
  547. package/dist/cart/components/index.js.map +0 -1
  548. package/dist/cart/index.d.ts +0 -109
  549. package/dist/cart/index.d.ts.map +0 -1
  550. package/dist/cart/index.js +0 -115
  551. package/dist/cart/index.js.map +0 -1
  552. package/dist/cart/store.d.ts +0 -150
  553. package/dist/cart/store.d.ts.map +0 -1
  554. package/dist/cart/store.js +0 -315
  555. package/dist/cart/store.js.map +0 -1
  556. package/dist/checkout/api/checkout.js +0 -112
  557. package/dist/checkout/api/checkout.js.map +0 -1
  558. package/dist/checkout/api/countries.d.ts +0 -17
  559. package/dist/checkout/api/countries.d.ts.map +0 -1
  560. package/dist/checkout/api/countries.js +0 -38
  561. package/dist/checkout/api/countries.js.map +0 -1
  562. package/dist/checkout/api/index.js +0 -11
  563. package/dist/checkout/api/index.js.map +0 -1
  564. package/dist/checkout/api/payment-status.d.ts +0 -45
  565. package/dist/checkout/api/payment-status.d.ts.map +0 -1
  566. package/dist/checkout/api/payment-status.js +0 -104
  567. package/dist/checkout/api/payment-status.js.map +0 -1
  568. package/dist/checkout/api/shipping.d.ts +0 -34
  569. package/dist/checkout/api/shipping.d.ts.map +0 -1
  570. package/dist/checkout/api/shipping.js +0 -247
  571. package/dist/checkout/api/shipping.js.map +0 -1
  572. package/dist/checkout/api/webhook.js +0 -55
  573. package/dist/checkout/api/webhook.js.map +0 -1
  574. package/dist/checkout/components/CheckoutButton.d.ts +0 -55
  575. package/dist/checkout/components/CheckoutButton.d.ts.map +0 -1
  576. package/dist/checkout/components/CheckoutButton.js +0 -132
  577. package/dist/checkout/components/CheckoutButton.js.map +0 -1
  578. package/dist/checkout/components/CheckoutFlow.d.ts +0 -53
  579. package/dist/checkout/components/CheckoutFlow.d.ts.map +0 -1
  580. package/dist/checkout/components/CheckoutFlow.js +0 -286
  581. package/dist/checkout/components/CheckoutFlow.js.map +0 -1
  582. package/dist/checkout/components/CheckoutSuccess.d.ts +0 -29
  583. package/dist/checkout/components/CheckoutSuccess.d.ts.map +0 -1
  584. package/dist/checkout/components/CheckoutSuccess.js +0 -49
  585. package/dist/checkout/components/CheckoutSuccess.js.map +0 -1
  586. package/dist/checkout/components/OrderSummary.d.ts +0 -37
  587. package/dist/checkout/components/OrderSummary.d.ts.map +0 -1
  588. package/dist/checkout/components/OrderSummary.js +0 -71
  589. package/dist/checkout/components/OrderSummary.js.map +0 -1
  590. package/dist/checkout/components/ShippingForm.d.ts +0 -30
  591. package/dist/checkout/components/ShippingForm.d.ts.map +0 -1
  592. package/dist/checkout/components/ShippingForm.js +0 -185
  593. package/dist/checkout/components/ShippingForm.js.map +0 -1
  594. package/dist/checkout/components/ShippingOptions.d.ts +0 -51
  595. package/dist/checkout/components/ShippingOptions.d.ts.map +0 -1
  596. package/dist/checkout/components/ShippingOptions.js +0 -93
  597. package/dist/checkout/components/ShippingOptions.js.map +0 -1
  598. package/dist/checkout/components/index.d.ts +0 -12
  599. package/dist/checkout/components/index.d.ts.map +0 -1
  600. package/dist/checkout/components/index.js +0 -12
  601. package/dist/checkout/components/index.js.map +0 -1
  602. package/dist/checkout/constants.d.ts +0 -244
  603. package/dist/checkout/constants.d.ts.map +0 -1
  604. package/dist/checkout/constants.js +0 -119
  605. package/dist/checkout/constants.js.map +0 -1
  606. package/dist/checkout/hooks/index.d.ts +0 -9
  607. package/dist/checkout/hooks/index.d.ts.map +0 -1
  608. package/dist/checkout/hooks/index.js +0 -8
  609. package/dist/checkout/hooks/index.js.map +0 -1
  610. package/dist/checkout/hooks/useCheckout.d.ts +0 -38
  611. package/dist/checkout/hooks/useCheckout.d.ts.map +0 -1
  612. package/dist/checkout/hooks/useCheckout.js +0 -134
  613. package/dist/checkout/hooks/useCheckout.js.map +0 -1
  614. package/dist/checkout/hooks/usePaymentStatus.d.ts +0 -42
  615. package/dist/checkout/hooks/usePaymentStatus.d.ts.map +0 -1
  616. package/dist/checkout/hooks/usePaymentStatus.js +0 -71
  617. package/dist/checkout/hooks/usePaymentStatus.js.map +0 -1
  618. package/dist/checkout/index.js +0 -135
  619. package/dist/checkout/index.js.map +0 -1
  620. package/dist/checkout/server/coupons.d.ts +0 -91
  621. package/dist/checkout/server/coupons.d.ts.map +0 -1
  622. package/dist/checkout/server/coupons.js +0 -192
  623. package/dist/checkout/server/coupons.js.map +0 -1
  624. package/dist/checkout/server/index.js +0 -10
  625. package/dist/checkout/server/index.js.map +0 -1
  626. package/dist/checkout/stripe/client.d.ts +0 -74
  627. package/dist/checkout/stripe/client.d.ts.map +0 -1
  628. package/dist/checkout/stripe/client.js +0 -175
  629. package/dist/checkout/stripe/client.js.map +0 -1
  630. package/dist/checkout/stripe/index.d.ts +0 -7
  631. package/dist/checkout/stripe/index.d.ts.map +0 -1
  632. package/dist/checkout/stripe/index.js +0 -7
  633. package/dist/checkout/stripe/index.js.map +0 -1
  634. package/dist/checkout/types.d.ts +0 -489
  635. package/dist/checkout/types.d.ts.map +0 -1
  636. package/dist/checkout/types.js +0 -8
  637. package/dist/checkout/types.js.map +0 -1
  638. package/dist/core/StoreSettingsProvider.d.ts +0 -107
  639. package/dist/core/StoreSettingsProvider.d.ts.map +0 -1
  640. package/dist/core/StoreSettingsProvider.js +0 -200
  641. package/dist/core/StoreSettingsProvider.js.map +0 -1
  642. package/dist/core/api/index.d.ts +0 -7
  643. package/dist/core/api/index.d.ts.map +0 -1
  644. package/dist/core/api/index.js +0 -7
  645. package/dist/core/api/index.js.map +0 -1
  646. package/dist/core/api/settings.d.ts +0 -42
  647. package/dist/core/api/settings.d.ts.map +0 -1
  648. package/dist/core/api/settings.js +0 -74
  649. package/dist/core/api/settings.js.map +0 -1
  650. package/dist/core/config.d.ts +0 -270
  651. package/dist/core/config.d.ts.map +0 -1
  652. package/dist/core/config.js +0 -80
  653. package/dist/core/config.js.map +0 -1
  654. package/dist/core/cookie-consent/CookieBanner.d.ts +0 -2
  655. package/dist/core/cookie-consent/CookieBanner.d.ts.map +0 -1
  656. package/dist/core/cookie-consent/CookieBanner.js +0 -243
  657. package/dist/core/cookie-consent/CookieBanner.js.map +0 -1
  658. package/dist/core/cookie-consent/CookieConsentProvider.d.ts +0 -53
  659. package/dist/core/cookie-consent/CookieConsentProvider.d.ts.map +0 -1
  660. package/dist/core/cookie-consent/CookieConsentProvider.js +0 -162
  661. package/dist/core/cookie-consent/CookieConsentProvider.js.map +0 -1
  662. package/dist/core/cookie-consent/CookiePreferencesLink.d.ts +0 -15
  663. package/dist/core/cookie-consent/CookiePreferencesLink.d.ts.map +0 -1
  664. package/dist/core/cookie-consent/CookiePreferencesLink.js +0 -12
  665. package/dist/core/cookie-consent/CookiePreferencesLink.js.map +0 -1
  666. package/dist/core/cookie-consent/index.d.ts +0 -17
  667. package/dist/core/cookie-consent/index.d.ts.map +0 -1
  668. package/dist/core/cookie-consent/index.js +0 -16
  669. package/dist/core/cookie-consent/index.js.map +0 -1
  670. package/dist/core/cookie-consent/types.d.ts +0 -31
  671. package/dist/core/cookie-consent/types.d.ts.map +0 -1
  672. package/dist/core/cookie-consent/types.js +0 -10
  673. package/dist/core/cookie-consent/types.js.map +0 -1
  674. package/dist/core/cookie-consent/useCookieConsent.d.ts +0 -14
  675. package/dist/core/cookie-consent/useCookieConsent.d.ts.map +0 -1
  676. package/dist/core/cookie-consent/useCookieConsent.js +0 -25
  677. package/dist/core/cookie-consent/useCookieConsent.js.map +0 -1
  678. package/dist/core/db/client.d.ts +0 -39
  679. package/dist/core/db/client.d.ts.map +0 -1
  680. package/dist/core/db/client.js +0 -86
  681. package/dist/core/db/client.js.map +0 -1
  682. package/dist/core/db/index.d.ts +0 -11
  683. package/dist/core/db/index.d.ts.map +0 -1
  684. package/dist/core/db/index.js +0 -36
  685. package/dist/core/db/index.js.map +0 -1
  686. package/dist/core/db/queries.d.ts +0 -1427
  687. package/dist/core/db/queries.d.ts.map +0 -1
  688. package/dist/core/db/queries.js +0 -1932
  689. package/dist/core/db/queries.js.map +0 -1
  690. package/dist/core/db/schema.d.ts +0 -3462
  691. package/dist/core/db/schema.d.ts.map +0 -1
  692. package/dist/core/db/schema.js +0 -495
  693. package/dist/core/db/schema.js.map +0 -1
  694. package/dist/core/index.d.ts +0 -22
  695. package/dist/core/index.d.ts.map +0 -1
  696. package/dist/core/index.js +0 -43
  697. package/dist/core/index.js.map +0 -1
  698. package/dist/core/server/index.d.ts +0 -18
  699. package/dist/core/server/index.d.ts.map +0 -1
  700. package/dist/core/server/index.js +0 -47
  701. package/dist/core/server/index.js.map +0 -1
  702. package/dist/core/types.d.ts +0 -246
  703. package/dist/core/types.d.ts.map +0 -1
  704. package/dist/core/types.js +0 -8
  705. package/dist/core/types.js.map +0 -1
  706. package/dist/core/utils.d.ts +0 -147
  707. package/dist/core/utils.d.ts.map +0 -1
  708. package/dist/core/utils.js +0 -309
  709. package/dist/core/utils.js.map +0 -1
  710. package/dist/emails/config.d.ts +0 -69
  711. package/dist/emails/config.d.ts.map +0 -1
  712. package/dist/emails/config.js +0 -147
  713. package/dist/emails/config.js.map +0 -1
  714. package/dist/emails/index.d.ts +0 -85
  715. package/dist/emails/index.d.ts.map +0 -1
  716. package/dist/emails/index.js +0 -110
  717. package/dist/emails/index.js.map +0 -1
  718. package/dist/emails/send/admin-auth.d.ts +0 -94
  719. package/dist/emails/send/admin-auth.d.ts.map +0 -1
  720. package/dist/emails/send/admin-auth.js +0 -118
  721. package/dist/emails/send/admin-auth.js.map +0 -1
  722. package/dist/emails/send/auth.d.ts +0 -91
  723. package/dist/emails/send/auth.d.ts.map +0 -1
  724. package/dist/emails/send/auth.js +0 -130
  725. package/dist/emails/send/auth.js.map +0 -1
  726. package/dist/emails/send/index.d.ts +0 -12
  727. package/dist/emails/send/index.d.ts.map +0 -1
  728. package/dist/emails/send/index.js +0 -18
  729. package/dist/emails/send/index.js.map +0 -1
  730. package/dist/emails/send/orders.d.ts +0 -186
  731. package/dist/emails/send/orders.d.ts.map +0 -1
  732. package/dist/emails/send/orders.js +0 -258
  733. package/dist/emails/send/orders.js.map +0 -1
  734. package/dist/emails/sender.d.ts +0 -72
  735. package/dist/emails/sender.d.ts.map +0 -1
  736. package/dist/emails/sender.js +0 -116
  737. package/dist/emails/sender.js.map +0 -1
  738. package/dist/emails/templates/admin-invite.d.ts +0 -40
  739. package/dist/emails/templates/admin-invite.d.ts.map +0 -1
  740. package/dist/emails/templates/admin-invite.js +0 -62
  741. package/dist/emails/templates/admin-invite.js.map +0 -1
  742. package/dist/emails/templates/base.d.ts +0 -109
  743. package/dist/emails/templates/base.d.ts.map +0 -1
  744. package/dist/emails/templates/base.js +0 -334
  745. package/dist/emails/templates/base.js.map +0 -1
  746. package/dist/emails/templates/email-verification.d.ts +0 -28
  747. package/dist/emails/templates/email-verification.d.ts.map +0 -1
  748. package/dist/emails/templates/email-verification.js +0 -52
  749. package/dist/emails/templates/email-verification.js.map +0 -1
  750. package/dist/emails/templates/index.d.ts +0 -16
  751. package/dist/emails/templates/index.d.ts.map +0 -1
  752. package/dist/emails/templates/index.js +0 -28
  753. package/dist/emails/templates/index.js.map +0 -1
  754. package/dist/emails/templates/order-cancelled.d.ts +0 -30
  755. package/dist/emails/templates/order-cancelled.d.ts.map +0 -1
  756. package/dist/emails/templates/order-cancelled.js +0 -83
  757. package/dist/emails/templates/order-cancelled.js.map +0 -1
  758. package/dist/emails/templates/order-confirmation.d.ts +0 -36
  759. package/dist/emails/templates/order-confirmation.d.ts.map +0 -1
  760. package/dist/emails/templates/order-confirmation.js +0 -174
  761. package/dist/emails/templates/order-confirmation.js.map +0 -1
  762. package/dist/emails/templates/order-delivered.d.ts +0 -31
  763. package/dist/emails/templates/order-delivered.d.ts.map +0 -1
  764. package/dist/emails/templates/order-delivered.js +0 -100
  765. package/dist/emails/templates/order-delivered.js.map +0 -1
  766. package/dist/emails/templates/order-shipped.d.ts +0 -32
  767. package/dist/emails/templates/order-shipped.d.ts.map +0 -1
  768. package/dist/emails/templates/order-shipped.js +0 -83
  769. package/dist/emails/templates/order-shipped.js.map +0 -1
  770. package/dist/emails/templates/password-reset.d.ts +0 -27
  771. package/dist/emails/templates/password-reset.d.ts.map +0 -1
  772. package/dist/emails/templates/password-reset.js +0 -51
  773. package/dist/emails/templates/password-reset.js.map +0 -1
  774. package/dist/emails/templates/refund-processed.d.ts +0 -32
  775. package/dist/emails/templates/refund-processed.d.ts.map +0 -1
  776. package/dist/emails/templates/refund-processed.js +0 -92
  777. package/dist/emails/templates/refund-processed.js.map +0 -1
  778. package/dist/emails/templates/welcome.d.ts +0 -27
  779. package/dist/emails/templates/welcome.d.ts.map +0 -1
  780. package/dist/emails/templates/welcome.js +0 -52
  781. package/dist/emails/templates/welcome.js.map +0 -1
  782. package/dist/emails/types.d.ts +0 -229
  783. package/dist/emails/types.d.ts.map +0 -1
  784. package/dist/emails/types.js +0 -7
  785. package/dist/emails/types.js.map +0 -1
  786. package/dist/emails/utils.d.ts +0 -94
  787. package/dist/emails/utils.d.ts.map +0 -1
  788. package/dist/emails/utils.js +0 -218
  789. package/dist/emails/utils.js.map +0 -1
  790. package/dist/index.js +0 -73
  791. package/dist/index.js.map +0 -1
  792. package/dist/media/api/delete.d.ts +0 -43
  793. package/dist/media/api/delete.d.ts.map +0 -1
  794. package/dist/media/api/delete.js +0 -124
  795. package/dist/media/api/delete.js.map +0 -1
  796. package/dist/media/api/index.d.ts +0 -17
  797. package/dist/media/api/index.d.ts.map +0 -1
  798. package/dist/media/api/index.js +0 -17
  799. package/dist/media/api/index.js.map +0 -1
  800. package/dist/media/api/presign.d.ts +0 -38
  801. package/dist/media/api/presign.d.ts.map +0 -1
  802. package/dist/media/api/presign.js +0 -130
  803. package/dist/media/api/presign.js.map +0 -1
  804. package/dist/media/components/DropZone.d.ts +0 -18
  805. package/dist/media/components/DropZone.d.ts.map +0 -1
  806. package/dist/media/components/DropZone.js +0 -107
  807. package/dist/media/components/DropZone.js.map +0 -1
  808. package/dist/media/components/ImageGalleryUpload.d.ts +0 -21
  809. package/dist/media/components/ImageGalleryUpload.d.ts.map +0 -1
  810. package/dist/media/components/ImageGalleryUpload.js +0 -193
  811. package/dist/media/components/ImageGalleryUpload.js.map +0 -1
  812. package/dist/media/components/ImageUpload.d.ts +0 -17
  813. package/dist/media/components/ImageUpload.d.ts.map +0 -1
  814. package/dist/media/components/ImageUpload.js +0 -89
  815. package/dist/media/components/ImageUpload.js.map +0 -1
  816. package/dist/media/components/index.d.ts +0 -10
  817. package/dist/media/components/index.d.ts.map +0 -1
  818. package/dist/media/components/index.js +0 -9
  819. package/dist/media/components/index.js.map +0 -1
  820. package/dist/media/config.d.ts +0 -83
  821. package/dist/media/config.d.ts.map +0 -1
  822. package/dist/media/config.js +0 -189
  823. package/dist/media/config.js.map +0 -1
  824. package/dist/media/hooks/index.d.ts +0 -8
  825. package/dist/media/hooks/index.d.ts.map +0 -1
  826. package/dist/media/hooks/index.js +0 -7
  827. package/dist/media/hooks/index.js.map +0 -1
  828. package/dist/media/hooks/useUpload.d.ts +0 -32
  829. package/dist/media/hooks/useUpload.d.ts.map +0 -1
  830. package/dist/media/hooks/useUpload.js +0 -260
  831. package/dist/media/hooks/useUpload.js.map +0 -1
  832. package/dist/media/index.d.ts +0 -57
  833. package/dist/media/index.d.ts.map +0 -1
  834. package/dist/media/index.js +0 -68
  835. package/dist/media/index.js.map +0 -1
  836. package/dist/media/server/delete.d.ts +0 -59
  837. package/dist/media/server/delete.d.ts.map +0 -1
  838. package/dist/media/server/delete.js +0 -176
  839. package/dist/media/server/delete.js.map +0 -1
  840. package/dist/media/server/index.d.ts +0 -10
  841. package/dist/media/server/index.d.ts.map +0 -1
  842. package/dist/media/server/index.js +0 -13
  843. package/dist/media/server/index.js.map +0 -1
  844. package/dist/media/server/presign.d.ts +0 -57
  845. package/dist/media/server/presign.d.ts.map +0 -1
  846. package/dist/media/server/presign.js +0 -112
  847. package/dist/media/server/presign.js.map +0 -1
  848. package/dist/media/server/r2-client.d.ts +0 -30
  849. package/dist/media/server/r2-client.d.ts.map +0 -1
  850. package/dist/media/server/r2-client.js +0 -76
  851. package/dist/media/server/r2-client.js.map +0 -1
  852. package/dist/media/types.d.ts +0 -316
  853. package/dist/media/types.d.ts.map +0 -1
  854. package/dist/media/types.js +0 -95
  855. package/dist/media/types.js.map +0 -1
  856. package/dist/products/api/categories.d.ts +0 -29
  857. package/dist/products/api/categories.d.ts.map +0 -1
  858. package/dist/products/api/categories.js +0 -46
  859. package/dist/products/api/categories.js.map +0 -1
  860. package/dist/products/api/index.d.ts +0 -24
  861. package/dist/products/api/index.d.ts.map +0 -1
  862. package/dist/products/api/index.js +0 -24
  863. package/dist/products/api/index.js.map +0 -1
  864. package/dist/products/api/product.d.ts +0 -36
  865. package/dist/products/api/product.d.ts.map +0 -1
  866. package/dist/products/api/product.js +0 -67
  867. package/dist/products/api/product.js.map +0 -1
  868. package/dist/products/api/products.d.ts +0 -41
  869. package/dist/products/api/products.d.ts.map +0 -1
  870. package/dist/products/api/products.js +0 -99
  871. package/dist/products/api/products.js.map +0 -1
  872. package/dist/products/components/CategoryNav.d.ts +0 -51
  873. package/dist/products/components/CategoryNav.d.ts.map +0 -1
  874. package/dist/products/components/CategoryNav.js +0 -110
  875. package/dist/products/components/CategoryNav.js.map +0 -1
  876. package/dist/products/components/ProductBreadcrumb.d.ts +0 -52
  877. package/dist/products/components/ProductBreadcrumb.d.ts.map +0 -1
  878. package/dist/products/components/ProductBreadcrumb.js +0 -73
  879. package/dist/products/components/ProductBreadcrumb.js.map +0 -1
  880. package/dist/products/components/ProductCard.d.ts +0 -54
  881. package/dist/products/components/ProductCard.d.ts.map +0 -1
  882. package/dist/products/components/ProductCard.js +0 -72
  883. package/dist/products/components/ProductCard.js.map +0 -1
  884. package/dist/products/components/ProductDetails.d.ts +0 -63
  885. package/dist/products/components/ProductDetails.d.ts.map +0 -1
  886. package/dist/products/components/ProductDetails.js +0 -137
  887. package/dist/products/components/ProductDetails.js.map +0 -1
  888. package/dist/products/components/ProductFilters.d.ts +0 -70
  889. package/dist/products/components/ProductFilters.d.ts.map +0 -1
  890. package/dist/products/components/ProductFilters.js +0 -125
  891. package/dist/products/components/ProductFilters.js.map +0 -1
  892. package/dist/products/components/ProductGallery.d.ts +0 -30
  893. package/dist/products/components/ProductGallery.d.ts.map +0 -1
  894. package/dist/products/components/ProductGallery.js +0 -91
  895. package/dist/products/components/ProductGallery.js.map +0 -1
  896. package/dist/products/components/ProductGrid.d.ts +0 -50
  897. package/dist/products/components/ProductGrid.d.ts.map +0 -1
  898. package/dist/products/components/ProductGrid.js +0 -81
  899. package/dist/products/components/ProductGrid.js.map +0 -1
  900. package/dist/products/components/ProductSearch.d.ts +0 -43
  901. package/dist/products/components/ProductSearch.d.ts.map +0 -1
  902. package/dist/products/components/ProductSearch.js +0 -97
  903. package/dist/products/components/ProductSearch.js.map +0 -1
  904. package/dist/products/components/ProductSort.d.ts +0 -43
  905. package/dist/products/components/ProductSort.d.ts.map +0 -1
  906. package/dist/products/components/ProductSort.js +0 -59
  907. package/dist/products/components/ProductSort.js.map +0 -1
  908. package/dist/products/components/VariantSelector.d.ts +0 -43
  909. package/dist/products/components/VariantSelector.d.ts.map +0 -1
  910. package/dist/products/components/VariantSelector.js +0 -147
  911. package/dist/products/components/VariantSelector.js.map +0 -1
  912. package/dist/products/components/index.d.ts +0 -20
  913. package/dist/products/components/index.d.ts.map +0 -1
  914. package/dist/products/components/index.js +0 -15
  915. package/dist/products/components/index.js.map +0 -1
  916. package/dist/products/hooks/index.d.ts +0 -10
  917. package/dist/products/hooks/index.d.ts.map +0 -1
  918. package/dist/products/hooks/index.js +0 -8
  919. package/dist/products/hooks/index.js.map +0 -1
  920. package/dist/products/hooks/useCategories.d.ts +0 -56
  921. package/dist/products/hooks/useCategories.d.ts.map +0 -1
  922. package/dist/products/hooks/useCategories.js +0 -126
  923. package/dist/products/hooks/useCategories.js.map +0 -1
  924. package/dist/products/hooks/useProduct.d.ts +0 -44
  925. package/dist/products/hooks/useProduct.d.ts.map +0 -1
  926. package/dist/products/hooks/useProduct.js +0 -87
  927. package/dist/products/hooks/useProduct.js.map +0 -1
  928. package/dist/products/hooks/useProductAttributes.d.ts +0 -59
  929. package/dist/products/hooks/useProductAttributes.d.ts.map +0 -1
  930. package/dist/products/hooks/useProductAttributes.js +0 -125
  931. package/dist/products/hooks/useProductAttributes.js.map +0 -1
  932. package/dist/products/hooks/useProducts.d.ts +0 -67
  933. package/dist/products/hooks/useProducts.d.ts.map +0 -1
  934. package/dist/products/hooks/useProducts.js +0 -131
  935. package/dist/products/hooks/useProducts.js.map +0 -1
  936. package/dist/products/index.d.ts +0 -69
  937. package/dist/products/index.d.ts.map +0 -1
  938. package/dist/products/index.js +0 -79
  939. package/dist/products/index.js.map +0 -1
  940. package/dist/shipping/index.d.ts +0 -8
  941. package/dist/shipping/index.d.ts.map +0 -1
  942. package/dist/shipping/index.js +0 -8
  943. package/dist/shipping/index.js.map +0 -1
  944. package/dist/shipping/shippo.d.ts +0 -77
  945. package/dist/shipping/shippo.d.ts.map +0 -1
  946. package/dist/shipping/shippo.js +0 -280
  947. package/dist/shipping/shippo.js.map +0 -1
  948. package/dist/theme/ThemeProvider.d.ts +0 -70
  949. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  950. package/dist/theme/ThemeProvider.js +0 -75
  951. package/dist/theme/ThemeProvider.js.map +0 -1
  952. package/dist/theme/colors.d.ts +0 -134
  953. package/dist/theme/colors.d.ts.map +0 -1
  954. package/dist/theme/colors.js +0 -214
  955. package/dist/theme/colors.js.map +0 -1
  956. package/dist/theme/defaults.d.ts +0 -133
  957. package/dist/theme/defaults.d.ts.map +0 -1
  958. package/dist/theme/defaults.js +0 -210
  959. package/dist/theme/defaults.js.map +0 -1
  960. package/dist/theme/fonts.d.ts +0 -28
  961. package/dist/theme/fonts.d.ts.map +0 -1
  962. package/dist/theme/fonts.js +0 -55
  963. package/dist/theme/fonts.js.map +0 -1
  964. package/dist/theme/generator.d.ts +0 -43
  965. package/dist/theme/generator.d.ts.map +0 -1
  966. package/dist/theme/generator.js +0 -272
  967. package/dist/theme/generator.js.map +0 -1
  968. package/dist/theme/hooks.d.ts +0 -110
  969. package/dist/theme/hooks.d.ts.map +0 -1
  970. package/dist/theme/hooks.js +0 -101
  971. package/dist/theme/hooks.js.map +0 -1
  972. package/dist/theme/index.d.ts +0 -23
  973. package/dist/theme/index.d.ts.map +0 -1
  974. package/dist/theme/index.js +0 -30
  975. package/dist/theme/index.js.map +0 -1
  976. /package/dist/admin/{styles/admin-theme.css → admin-theme.css} +0 -0
@@ -1,838 +0,0 @@
1
- /**
2
- * @rovela/sdk/admin/server/user-management
3
- *
4
- * User lifecycle management for store admins — list, deactivate, reactivate,
5
- * and hard-delete operations, with all invariants enforced at the service
6
- * layer so every future caller inherits them automatically.
7
- *
8
- * # Invariants (enforced in every mutation)
9
- *
10
- * 1. Self-protection: actor cannot act on themselves via these helpers.
11
- * Self-service flows (password change, profile update) go through
12
- * dedicated `/api/admin/me/*` endpoints (Phase 4).
13
- *
14
- * 2. Last-owner protection: there must ALWAYS be at least one admin with
15
- * role='owner' AND status='active'. Deactivating, demoting, or deleting
16
- * the last active owner is rejected. This is enforced via an atomic
17
- * conditional UPDATE (or a pre-check for hard delete), not a
18
- * check-then-act pattern — no TOCTOU race window.
19
- *
20
- * 3. Lateral-escalation protection: administrators can only touch managers
21
- * and users. They cannot modify owners or other administrators.
22
- * Enforced via `canManageUser(actor, target)` from `permissions.ts`.
23
- *
24
- * 4. Hard delete requires prior deactivation: you cannot DELETE an admin
25
- * whose status is 'active' or 'invited'. Must call `deactivateAdmin`
26
- * first. This creates a two-step safety rail for irreversible actions.
27
- *
28
- * 5. Audit trail on deactivate: `deactivated_at` and `deactivated_by` are
29
- * populated from the service layer. Reactivate clears them.
30
- *
31
- * 6. Reactivate only applies to 'deactivated' admins, not 'invited'.
32
- * Invited admins must accept their invite (Phase 3) to become active.
33
- *
34
- * # Session cache invalidation
35
- *
36
- * Every mutation ends with `invalidateAdminSession(targetId)` so the 30-second
37
- * per-admin status cache in `requireAdmin()` sees the new state on the very
38
- * next request. Without this call, a deactivated admin could continue making
39
- * authenticated requests for up to 30 seconds.
40
- *
41
- * # This module never throws on invariant failures — it returns a typed
42
- * discriminated union `{ ok: true }` or `{ ok: false, error: {...} }`.
43
- * Unexpected runtime errors (DB connectivity, etc.) still throw and bubble
44
- * up to the API route's try/catch.
45
- */
46
- import { and, eq, ilike, or, sql, desc } from 'drizzle-orm';
47
- import { getDb } from '../../core/db/client';
48
- import * as schema from '../../core/db/schema';
49
- import { canManageUser, roleLabel } from '../permissions';
50
- import { findAdminById, findAdminByEmail } from './admin-service';
51
- import { invalidateAdminSession } from './admin-session';
52
- import { createInviteToken, deleteAdminInviteTokens, INVITE_EXPIRY_HOURS, } from './admin-invite';
53
- import { sendAdminInviteEmail } from '../../emails/send/admin-auth';
54
- import { getStoreUrl } from '../../emails/config';
55
- // =============================================================================
56
- // List (read path)
57
- // =============================================================================
58
- /**
59
- * List admins with filters and pagination.
60
- *
61
- * Returns the raw `StoreAdmin` rows — the caller is responsible for stripping
62
- * sensitive fields (`passwordHash`) before serializing to JSON. The API
63
- * handler does this mapping.
64
- */
65
- export async function listAdmins(opts = {}) {
66
- const db = getDb();
67
- const limit = Math.max(1, Math.min(100, opts.limit ?? 20));
68
- const offset = Math.max(0, opts.offset ?? 0);
69
- // Build WHERE conditions
70
- const conditions = [];
71
- if (opts.search && opts.search.trim()) {
72
- const pattern = `%${opts.search.trim()}%`;
73
- conditions.push(or(ilike(schema.storeAdmins.email, pattern), ilike(schema.storeAdmins.name, pattern)));
74
- }
75
- if (opts.status && opts.status !== 'all') {
76
- conditions.push(eq(schema.storeAdmins.status, opts.status));
77
- }
78
- if (opts.role && opts.role !== 'all') {
79
- conditions.push(eq(schema.storeAdmins.role, opts.role));
80
- }
81
- const whereClause = conditions.length > 0 ? and(...conditions) : undefined;
82
- // Two parallel queries: page + count
83
- const [admins, countResult] = await Promise.all([
84
- db
85
- .select()
86
- .from(schema.storeAdmins)
87
- .where(whereClause)
88
- // Owners first, then by creation date (newest first)
89
- .orderBy(sql `CASE ${schema.storeAdmins.role}
90
- WHEN 'owner' THEN 0
91
- WHEN 'administrator' THEN 1
92
- WHEN 'manager' THEN 2
93
- WHEN 'user' THEN 3
94
- ELSE 4
95
- END`, desc(schema.storeAdmins.createdAt))
96
- .limit(limit)
97
- .offset(offset),
98
- db
99
- .select({ count: sql `COUNT(*)::int` })
100
- .from(schema.storeAdmins)
101
- .where(whereClause),
102
- ]);
103
- return {
104
- admins,
105
- total: Number(countResult[0]?.count ?? 0),
106
- };
107
- }
108
- // =============================================================================
109
- // Helper: count active owners
110
- // =============================================================================
111
- /**
112
- * Count admins with role='owner' and status='active'.
113
- *
114
- * The single source of truth for the last-owner invariant. Always queried
115
- * fresh — it's a one-row COUNT, trivially fast, and caching would introduce
116
- * staleness risk for a safety-critical check.
117
- */
118
- export async function countActiveOwners() {
119
- const db = getDb();
120
- const [row] = await db
121
- .select({ count: sql `COUNT(*)::int` })
122
- .from(schema.storeAdmins)
123
- .where(and(eq(schema.storeAdmins.role, 'owner'), eq(schema.storeAdmins.status, 'active')));
124
- return Number(row?.count ?? 0);
125
- }
126
- // =============================================================================
127
- // Deactivate
128
- // =============================================================================
129
- /**
130
- * Soft-delete an admin: set status='deactivated' and stamp audit fields.
131
- *
132
- * Rejects on any invariant violation. Never throws on business errors;
133
- * returns a typed result the caller can branch on.
134
- *
135
- * Uses an atomic conditional UPDATE to enforce the last-owner invariant —
136
- * no check-then-act race window. If another request deactivates the second-
137
- * to-last owner between our check and our update, our UPDATE's WHERE clause
138
- * will match zero rows and we return LAST_OWNER_PROTECTED.
139
- */
140
- export async function deactivateAdmin(actor, targetId) {
141
- // Load target
142
- const target = await findAdminById(targetId);
143
- if (!target) {
144
- return {
145
- ok: false,
146
- error: { code: 'NOT_FOUND', message: 'Admin not found.' },
147
- };
148
- }
149
- // Self-protection
150
- if (actor.id === targetId) {
151
- return {
152
- ok: false,
153
- error: {
154
- code: 'SELF_ACTION_FORBIDDEN',
155
- message: 'You cannot deactivate your own account.',
156
- },
157
- };
158
- }
159
- // Lateral-escalation protection
160
- if (!canManageUser(actor, { id: target.id, role: target.role })) {
161
- return {
162
- ok: false,
163
- error: {
164
- code: 'FORBIDDEN',
165
- message: 'You do not have permission to deactivate this admin.',
166
- },
167
- };
168
- }
169
- // Must currently be active (nothing to deactivate otherwise)
170
- if (target.status !== 'active') {
171
- return {
172
- ok: false,
173
- error: {
174
- code: 'INVALID_STATE',
175
- message: `Admin is already ${target.status}.`,
176
- },
177
- };
178
- }
179
- const db = getDb();
180
- // Atomic update with embedded last-owner guard. If the target is an owner
181
- // and they're the last active one, the subquery `> 1` evaluates to false
182
- // and the UPDATE matches zero rows.
183
- //
184
- // For non-owner targets, the subquery check is short-circuited because the
185
- // role condition in the WHERE clause excludes them from the owner-counting
186
- // branch. We use two separate UPDATEs keyed on the target's role to keep
187
- // the SQL readable.
188
- if (target.role === 'owner') {
189
- // Guarded: only succeeds if there's at least one OTHER active owner.
190
- const result = await db
191
- .update(schema.storeAdmins)
192
- .set({
193
- status: 'deactivated',
194
- deactivatedAt: new Date(),
195
- deactivatedBy: actor.id,
196
- })
197
- .where(and(eq(schema.storeAdmins.id, targetId), eq(schema.storeAdmins.status, 'active'), sql `(SELECT COUNT(*)::int FROM ${schema.storeAdmins} WHERE role = 'owner' AND status = 'active') > 1`))
198
- .returning({ id: schema.storeAdmins.id });
199
- if (result.length === 0) {
200
- return {
201
- ok: false,
202
- error: {
203
- code: 'LAST_OWNER_PROTECTED',
204
- message: 'Cannot deactivate the last active owner. Transfer ownership or promote another user first.',
205
- },
206
- };
207
- }
208
- }
209
- else {
210
- // Non-owner: straightforward update, still guarded on current status
211
- // so concurrent requests don't double-apply.
212
- const result = await db
213
- .update(schema.storeAdmins)
214
- .set({
215
- status: 'deactivated',
216
- deactivatedAt: new Date(),
217
- deactivatedBy: actor.id,
218
- })
219
- .where(and(eq(schema.storeAdmins.id, targetId), eq(schema.storeAdmins.status, 'active')))
220
- .returning({ id: schema.storeAdmins.id });
221
- if (result.length === 0) {
222
- // Raced with another request — target was modified mid-flight
223
- return {
224
- ok: false,
225
- error: {
226
- code: 'INVALID_STATE',
227
- message: 'Admin state changed concurrently. Please refresh and try again.',
228
- },
229
- };
230
- }
231
- }
232
- // Force the target's next request to re-read from DB → 401 kick-out
233
- invalidateAdminSession(targetId);
234
- return { ok: true };
235
- }
236
- // =============================================================================
237
- // Reactivate
238
- // =============================================================================
239
- /**
240
- * Reactivate a previously-deactivated admin: set status='active', clear
241
- * audit fields. Does NOT apply to 'invited' admins — they must accept
242
- * their invite (Phase 3) to become active.
243
- */
244
- export async function reactivateAdmin(actor, targetId) {
245
- const target = await findAdminById(targetId);
246
- if (!target) {
247
- return {
248
- ok: false,
249
- error: { code: 'NOT_FOUND', message: 'Admin not found.' },
250
- };
251
- }
252
- // Self-protection — a deactivated admin can't hit this endpoint anyway
253
- // (they can't sign in), but defense-in-depth is cheap.
254
- if (actor.id === targetId) {
255
- return {
256
- ok: false,
257
- error: {
258
- code: 'SELF_ACTION_FORBIDDEN',
259
- message: 'You cannot modify your own account here.',
260
- },
261
- };
262
- }
263
- if (!canManageUser(actor, { id: target.id, role: target.role })) {
264
- return {
265
- ok: false,
266
- error: {
267
- code: 'FORBIDDEN',
268
- message: 'You do not have permission to reactivate this admin.',
269
- },
270
- };
271
- }
272
- if (target.status !== 'deactivated') {
273
- return {
274
- ok: false,
275
- error: {
276
- code: 'INVALID_STATE',
277
- message: `Only deactivated admins can be reactivated. This admin is ${target.status}.`,
278
- },
279
- };
280
- }
281
- const db = getDb();
282
- const result = await db
283
- .update(schema.storeAdmins)
284
- .set({
285
- status: 'active',
286
- deactivatedAt: null,
287
- deactivatedBy: null,
288
- })
289
- .where(and(eq(schema.storeAdmins.id, targetId), eq(schema.storeAdmins.status, 'deactivated')))
290
- .returning({ id: schema.storeAdmins.id });
291
- if (result.length === 0) {
292
- return {
293
- ok: false,
294
- error: {
295
- code: 'INVALID_STATE',
296
- message: 'Admin state changed concurrently. Please refresh and try again.',
297
- },
298
- };
299
- }
300
- invalidateAdminSession(targetId);
301
- return { ok: true };
302
- }
303
- // =============================================================================
304
- // Hard delete (owner-only, requires prior deactivation)
305
- // =============================================================================
306
- /**
307
- * Permanently delete an admin row. Cascades to `admin_password_reset_tokens`
308
- * and `admin_invite_tokens` via the `ON DELETE CASCADE` foreign keys defined
309
- * in the Phase 0 schema.
310
- *
311
- * Requires the target to already be 'deactivated' — this is a two-step
312
- * irreversible action. The API route additionally gates on `users.delete`
313
- * permission (owner-only), but we re-check here for defense-in-depth.
314
- *
315
- * Dangling `deactivated_by` / `created_by` references on other admin rows
316
- * are intentionally left as dangling UUIDs. The UI renders them as
317
- * "Unknown user". Phase 4 may revisit.
318
- */
319
- export async function hardDeleteAdmin(actor, targetId) {
320
- const target = await findAdminById(targetId);
321
- if (!target) {
322
- return {
323
- ok: false,
324
- error: { code: 'NOT_FOUND', message: 'Admin not found.' },
325
- };
326
- }
327
- if (actor.id === targetId) {
328
- return {
329
- ok: false,
330
- error: {
331
- code: 'SELF_ACTION_FORBIDDEN',
332
- message: 'You cannot delete your own account.',
333
- },
334
- };
335
- }
336
- // Defense-in-depth: only owners reach this code path because the API
337
- // handler gates on `users.delete` permission, but we re-check here so
338
- // the invariant holds even if a non-owner caller bypasses the HTTP layer.
339
- if (actor.role !== 'owner') {
340
- return {
341
- ok: false,
342
- error: {
343
- code: 'FORBIDDEN',
344
- message: 'Only owners can permanently delete admins.',
345
- },
346
- };
347
- }
348
- if (!canManageUser(actor, { id: target.id, role: target.role })) {
349
- return {
350
- ok: false,
351
- error: {
352
- code: 'FORBIDDEN',
353
- message: 'You do not have permission to delete this admin.',
354
- },
355
- };
356
- }
357
- // Must already be deactivated — the two-step safety rail for irreversible
358
- // destruction. The UI never offers "Delete" on an active row.
359
- if (target.status !== 'deactivated') {
360
- return {
361
- ok: false,
362
- error: {
363
- code: 'MUST_DEACTIVATE_FIRST',
364
- message: 'You must deactivate this admin before permanently deleting them.',
365
- },
366
- };
367
- }
368
- // Deactivated owners don't count toward the active-owner total, so the
369
- // last-owner invariant cannot be violated by this delete — but we still
370
- // short-circuit with a defensive check in case the schema grows in the
371
- // future and the 'deactivated' state becomes ambiguous.
372
- if (target.role === 'owner') {
373
- const activeOwners = await countActiveOwners();
374
- if (activeOwners < 1) {
375
- return {
376
- ok: false,
377
- error: {
378
- code: 'LAST_OWNER_PROTECTED',
379
- message: 'Cannot delete the last owner — at least one active owner must exist.',
380
- },
381
- };
382
- }
383
- }
384
- const db = getDb();
385
- const result = await db
386
- .delete(schema.storeAdmins)
387
- .where(and(eq(schema.storeAdmins.id, targetId), eq(schema.storeAdmins.status, 'deactivated')))
388
- .returning({ id: schema.storeAdmins.id });
389
- if (result.length === 0) {
390
- return {
391
- ok: false,
392
- error: {
393
- code: 'INVALID_STATE',
394
- message: 'Admin state changed concurrently. Please refresh and try again.',
395
- },
396
- };
397
- }
398
- invalidateAdminSession(targetId);
399
- return { ok: true };
400
- }
401
- // =============================================================================
402
- // Helper: HTTP status code mapping for errors
403
- // =============================================================================
404
- /**
405
- * Map a `UserManagementError.code` to the HTTP status the API handler
406
- * should respond with. Exported so both the API handlers and any future
407
- * caller use the same mapping.
408
- */
409
- export function statusCodeFor(code) {
410
- switch (code) {
411
- case 'NOT_FOUND':
412
- return 404;
413
- case 'FORBIDDEN':
414
- case 'SELF_ACTION_FORBIDDEN':
415
- return 403;
416
- case 'VALIDATION_ERROR':
417
- return 400;
418
- case 'LAST_OWNER_PROTECTED':
419
- case 'MUST_DEACTIVATE_FIRST':
420
- case 'INVALID_STATE':
421
- case 'EMAIL_ALREADY_EXISTS':
422
- case 'EMAIL_ALREADY_INVITED':
423
- case 'EMAIL_DEACTIVATED_EXISTS':
424
- return 409;
425
- default:
426
- // Exhaustiveness safeguard — if the union grows without this
427
- // function being updated, TS will complain here at compile time.
428
- return 500;
429
- }
430
- }
431
- /**
432
- * Invite a new admin to manage the store.
433
- *
434
- * Creates a `store_admins` row in `invited` status with no password,
435
- * issues an invite token (72h expiry), and sends the invite email. The
436
- * caller receives both the token AND the fully-qualified invite URL — so
437
- * if email delivery fails, the UI can show a "copy link manually"
438
- * fallback instead of silently losing the invite.
439
- *
440
- * # Invariants (in order)
441
- *
442
- * 1. `canManageUser(actor, {role})` — actor can grant the requested role.
443
- * Administrators cannot invite owners or other administrators.
444
- * 2. Valid email format + name length ≥ 2.
445
- * 3. Email uniqueness — rejects with a distinct error code depending on
446
- * the existing row's status (active / invited / deactivated) so the
447
- * UI can show actionable messages.
448
- * 4. Legal role: must be one of 'owner' | 'administrator' | 'manager' | 'user'.
449
- *
450
- * Email send failures are logged but NOT propagated — the invite row +
451
- * token are already persisted, the caller gets the URL, and the UI
452
- * handles fallback display.
453
- */
454
- export async function inviteAdmin(actor, request) {
455
- const email = (request.email || '').trim().toLowerCase();
456
- const name = (request.name || '').trim();
457
- const role = request.role;
458
- // Basic format validation
459
- if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
460
- return {
461
- ok: false,
462
- error: {
463
- code: 'VALIDATION_ERROR',
464
- message: 'Please enter a valid email address.',
465
- },
466
- };
467
- }
468
- if (name.length < 2) {
469
- return {
470
- ok: false,
471
- error: {
472
- code: 'VALIDATION_ERROR',
473
- message: 'Name must be at least 2 characters.',
474
- },
475
- };
476
- }
477
- if (role !== 'owner' &&
478
- role !== 'administrator' &&
479
- role !== 'manager' &&
480
- role !== 'user') {
481
- return {
482
- ok: false,
483
- error: {
484
- code: 'VALIDATION_ERROR',
485
- message: 'Invalid role. Must be owner, administrator, manager, or user.',
486
- },
487
- };
488
- }
489
- // Permission: actor must be allowed to grant this role. We pass a
490
- // synthetic target with a fake id so `canManageUser` is just checking
491
- // the role-vs-role hierarchy (it does an actor.id === target.id check
492
- // for self-protection, which is irrelevant here — no self-invite).
493
- if (!canManageUser(actor, { id: '__new_invitee__', role })) {
494
- return {
495
- ok: false,
496
- error: {
497
- code: 'FORBIDDEN',
498
- message: `You do not have permission to invite someone as ${roleLabel(role)}.`,
499
- },
500
- };
501
- }
502
- // Email uniqueness
503
- const existing = await findAdminByEmail(email);
504
- if (existing) {
505
- const existingStatus = existing.status ?? 'active';
506
- if (existingStatus === 'active') {
507
- return {
508
- ok: false,
509
- error: {
510
- code: 'EMAIL_ALREADY_EXISTS',
511
- message: 'An active admin with this email already exists.',
512
- },
513
- };
514
- }
515
- if (existingStatus === 'invited') {
516
- return {
517
- ok: false,
518
- error: {
519
- code: 'EMAIL_ALREADY_INVITED',
520
- message: 'This email was already invited. Use the Resend invite action instead.',
521
- },
522
- };
523
- }
524
- return {
525
- ok: false,
526
- error: {
527
- code: 'EMAIL_DEACTIVATED_EXISTS',
528
- message: 'A previously deactivated admin exists with this email. Reactivate them instead of re-inviting.',
529
- },
530
- };
531
- }
532
- // Insert the invited admin row. passwordHash stays null until the
533
- // invitee accepts the invite and sets their own.
534
- const db = getDb();
535
- const [created] = await db
536
- .insert(schema.storeAdmins)
537
- .values({
538
- email,
539
- name,
540
- passwordHash: null,
541
- role,
542
- status: 'invited',
543
- createdBy: actor.id,
544
- })
545
- .returning({ id: schema.storeAdmins.id });
546
- if (!created) {
547
- return {
548
- ok: false,
549
- error: {
550
- code: 'INVALID_STATE',
551
- message: 'Failed to create invited admin. Please try again.',
552
- },
553
- };
554
- }
555
- // Create the invite token (72h)
556
- const { token } = await createInviteToken({
557
- adminId: created.id,
558
- invitedBy: actor.id,
559
- });
560
- // Build the invite URL. `getStoreUrl` reads from NEXT_PUBLIC_APP_URL /
561
- // NEXTAUTH_URL and returns '' if neither is set — the UI still gets a
562
- // valid (if short) URL it can show.
563
- const storeUrl = getStoreUrl();
564
- const inviteUrl = `${storeUrl}/admin/accept-invite?token=${encodeURIComponent(token)}`;
565
- // Best-effort send. We never fail the invite just because the email
566
- // broker is down — the owner sees the URL in the response and can
567
- // share it manually.
568
- try {
569
- // Resolve the inviter's display name from the `store_admins` row so
570
- // we can render it in the email greeting.
571
- const inviter = await findAdminById(actor.id);
572
- const inviterName = inviter?.name || 'An admin';
573
- await sendAdminInviteEmail({
574
- to: email,
575
- adminName: name,
576
- inviterName,
577
- roleLabel: roleLabel(role),
578
- acceptLink: inviteUrl,
579
- expiryHours: INVITE_EXPIRY_HOURS,
580
- });
581
- }
582
- catch (err) {
583
- console.error('[user-management] Failed to send invite email:', err instanceof Error ? err.message : err);
584
- // Intentionally swallow — the caller already has the URL.
585
- }
586
- return {
587
- ok: true,
588
- adminId: created.id,
589
- token,
590
- inviteUrl,
591
- };
592
- }
593
- /**
594
- * Resend an invite to an admin who is still in `invited` status.
595
- *
596
- * Generates a fresh token (invalidating any previous ones) and resends
597
- * the email. Preserves the single-active-token policy — older tokens
598
- * are deleted before the new one is created.
599
- */
600
- export async function resendAdminInvite(actor, targetId) {
601
- const target = await findAdminById(targetId);
602
- if (!target) {
603
- return {
604
- ok: false,
605
- error: { code: 'NOT_FOUND', message: 'Admin not found.' },
606
- };
607
- }
608
- if (!canManageUser(actor, { id: target.id, role: target.role })) {
609
- return {
610
- ok: false,
611
- error: {
612
- code: 'FORBIDDEN',
613
- message: 'You do not have permission to resend this invite.',
614
- },
615
- };
616
- }
617
- if (target.status !== 'invited') {
618
- return {
619
- ok: false,
620
- error: {
621
- code: 'INVALID_STATE',
622
- message: target.status === 'active'
623
- ? 'This admin has already accepted their invite.'
624
- : 'This admin cannot be re-invited.',
625
- },
626
- };
627
- }
628
- // Clear previous tokens so only the new one is valid
629
- await deleteAdminInviteTokens(target.id);
630
- const { token } = await createInviteToken({
631
- adminId: target.id,
632
- invitedBy: actor.id,
633
- });
634
- const storeUrl = getStoreUrl();
635
- const inviteUrl = `${storeUrl}/admin/accept-invite?token=${encodeURIComponent(token)}`;
636
- try {
637
- const inviter = await findAdminById(actor.id);
638
- const inviterName = inviter?.name || 'An admin';
639
- await sendAdminInviteEmail({
640
- to: target.email,
641
- adminName: target.name,
642
- inviterName,
643
- roleLabel: roleLabel(target.role),
644
- acceptLink: inviteUrl,
645
- expiryHours: INVITE_EXPIRY_HOURS,
646
- });
647
- }
648
- catch (err) {
649
- console.error('[user-management] Failed to resend invite email:', err instanceof Error ? err.message : err);
650
- }
651
- return { ok: true, token, inviteUrl };
652
- }
653
- // =============================================================================
654
- // Phase 3 — Cancel invite
655
- // =============================================================================
656
- /**
657
- * Cancel a pending invite. Hard-deletes the `store_admins` row — which
658
- * cascades via FK to delete all `admin_invite_tokens` rows for that
659
- * admin. Only valid for `invited` status (not `active` / `deactivated`).
660
- *
661
- * Uses `users.write` permission (administrators + owners), unlike the
662
- * DELETE endpoint which is owner-only. Canceling an invite for a manager
663
- * or user is a normal administrator action, not a destructive one.
664
- */
665
- export async function cancelAdminInvite(actor, targetId) {
666
- const target = await findAdminById(targetId);
667
- if (!target) {
668
- return {
669
- ok: false,
670
- error: { code: 'NOT_FOUND', message: 'Admin not found.' },
671
- };
672
- }
673
- // Defense-in-depth: self-action should be impossible (you can't invite
674
- // yourself), but check anyway.
675
- if (actor.id === targetId) {
676
- return {
677
- ok: false,
678
- error: {
679
- code: 'SELF_ACTION_FORBIDDEN',
680
- message: 'You cannot cancel your own invite.',
681
- },
682
- };
683
- }
684
- if (!canManageUser(actor, { id: target.id, role: target.role })) {
685
- return {
686
- ok: false,
687
- error: {
688
- code: 'FORBIDDEN',
689
- message: 'You do not have permission to cancel this invite.',
690
- },
691
- };
692
- }
693
- if (target.status !== 'invited') {
694
- return {
695
- ok: false,
696
- error: {
697
- code: 'INVALID_STATE',
698
- message: 'Only pending invites can be cancelled.',
699
- },
700
- };
701
- }
702
- const db = getDb();
703
- const result = await db
704
- .delete(schema.storeAdmins)
705
- .where(and(eq(schema.storeAdmins.id, targetId), eq(schema.storeAdmins.status, 'invited')))
706
- .returning({ id: schema.storeAdmins.id });
707
- if (result.length === 0) {
708
- return {
709
- ok: false,
710
- error: {
711
- code: 'INVALID_STATE',
712
- message: 'Admin state changed concurrently. Please refresh and try again.',
713
- },
714
- };
715
- }
716
- invalidateAdminSession(targetId);
717
- return { ok: true };
718
- }
719
- // =============================================================================
720
- // Phase 3 — Change role
721
- // =============================================================================
722
- /**
723
- * Change an admin's role.
724
- *
725
- * Invariants (in strict order):
726
- *
727
- * 1. Target exists (→ NOT_FOUND).
728
- * 2. Self-protection — actor cannot change their own role (→
729
- * SELF_ACTION_FORBIDDEN). A solo owner needing to demote themselves
730
- * must either invite another owner first, or use a future Phase 4
731
- * emergency-reset flow.
732
- * 3. canManageUser at CURRENT role — actor must be allowed to manage
733
- * the target at their current role (administrator cannot touch
734
- * owners or other administrators).
735
- * 4. canManageUser at NEW role — actor must be allowed to grant the
736
- * new role (administrator cannot promote to administrator/owner).
737
- * 5. No-op fast path — if newRole === current role, return success
738
- * without touching the DB.
739
- * 6. Last-owner protection — if target is currently 'owner' and the
740
- * new role is not 'owner', require `countActiveOwners() > 1`.
741
- * Enforced atomically via a conditional UPDATE so there's no
742
- * check-then-act race window.
743
- * 7. Update; invalidate session cache.
744
- */
745
- export async function changeAdminRole(actor, targetId, newRole) {
746
- const target = await findAdminById(targetId);
747
- if (!target) {
748
- return {
749
- ok: false,
750
- error: { code: 'NOT_FOUND', message: 'Admin not found.' },
751
- };
752
- }
753
- if (actor.id === targetId) {
754
- return {
755
- ok: false,
756
- error: {
757
- code: 'SELF_ACTION_FORBIDDEN',
758
- message: 'You cannot change your own role. Ask another owner to make this change.',
759
- },
760
- };
761
- }
762
- // Validate role value
763
- if (newRole !== 'owner' &&
764
- newRole !== 'administrator' &&
765
- newRole !== 'manager' &&
766
- newRole !== 'user') {
767
- return {
768
- ok: false,
769
- error: {
770
- code: 'VALIDATION_ERROR',
771
- message: 'Invalid role.',
772
- },
773
- };
774
- }
775
- // canManageUser at CURRENT role
776
- if (!canManageUser(actor, { id: target.id, role: target.role })) {
777
- return {
778
- ok: false,
779
- error: {
780
- code: 'FORBIDDEN',
781
- message: 'You do not have permission to manage this admin.',
782
- },
783
- };
784
- }
785
- // canManageUser at NEW role (pass a synthetic target id so the
786
- // self-check is neutral; we already ruled out self above)
787
- if (!canManageUser(actor, { id: '__new_role_target__', role: newRole })) {
788
- return {
789
- ok: false,
790
- error: {
791
- code: 'FORBIDDEN',
792
- message: `You do not have permission to grant the ${roleLabel(newRole)} role.`,
793
- },
794
- };
795
- }
796
- // No-op fast path: target already at the requested role.
797
- if (target.role === newRole) {
798
- return { ok: true };
799
- }
800
- const db = getDb();
801
- if (target.role === 'owner' && newRole !== 'owner') {
802
- // Demotion from owner — guarded with the last-owner invariant
803
- const result = await db
804
- .update(schema.storeAdmins)
805
- .set({ role: newRole })
806
- .where(and(eq(schema.storeAdmins.id, targetId), eq(schema.storeAdmins.role, 'owner'), sql `(SELECT COUNT(*)::int FROM ${schema.storeAdmins} WHERE role = 'owner' AND status = 'active') > 1`))
807
- .returning({ id: schema.storeAdmins.id });
808
- if (result.length === 0) {
809
- return {
810
- ok: false,
811
- error: {
812
- code: 'LAST_OWNER_PROTECTED',
813
- message: 'Cannot demote the last active owner. Promote another admin to owner first.',
814
- },
815
- };
816
- }
817
- }
818
- else {
819
- // Non-owner-demotion path: straightforward update
820
- const result = await db
821
- .update(schema.storeAdmins)
822
- .set({ role: newRole })
823
- .where(eq(schema.storeAdmins.id, targetId))
824
- .returning({ id: schema.storeAdmins.id });
825
- if (result.length === 0) {
826
- return {
827
- ok: false,
828
- error: {
829
- code: 'INVALID_STATE',
830
- message: 'Admin state changed concurrently. Please refresh and try again.',
831
- },
832
- };
833
- }
834
- }
835
- invalidateAdminSession(targetId);
836
- return { ok: true };
837
- }
838
- //# sourceMappingURL=user-management.js.map