@rovela-ai/sdk 0.1.2 → 0.1.3

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 (569) hide show
  1. package/dist/admin/api/auth.d.ts +32 -0
  2. package/dist/admin/api/auth.d.ts.map +1 -0
  3. package/dist/admin/api/auth.js +43 -0
  4. package/dist/admin/api/auth.js.map +1 -0
  5. package/dist/admin/api/categories.d.ts +68 -0
  6. package/dist/admin/api/categories.d.ts.map +1 -0
  7. package/dist/admin/api/categories.js +247 -0
  8. package/dist/admin/api/categories.js.map +1 -0
  9. package/dist/admin/api/customers.d.ts +41 -0
  10. package/dist/admin/api/customers.d.ts.map +1 -0
  11. package/dist/admin/api/customers.js +113 -0
  12. package/dist/admin/api/customers.js.map +1 -0
  13. package/dist/admin/api/index.d.ts +56 -0
  14. package/dist/admin/api/index.d.ts.map +1 -0
  15. package/dist/admin/api/index.js +87 -0
  16. package/dist/admin/api/index.js.map +1 -0
  17. package/dist/admin/api/orders.d.ts +59 -0
  18. package/dist/admin/api/orders.d.ts.map +1 -0
  19. package/dist/admin/api/orders.js +209 -0
  20. package/dist/admin/api/orders.js.map +1 -0
  21. package/dist/admin/api/products.d.ts +103 -0
  22. package/dist/admin/api/products.d.ts.map +1 -0
  23. package/dist/admin/api/products.js +329 -0
  24. package/dist/admin/api/products.js.map +1 -0
  25. package/dist/admin/api/refund.d.ts +29 -0
  26. package/dist/admin/api/refund.d.ts.map +1 -0
  27. package/dist/admin/api/refund.js +136 -0
  28. package/dist/admin/api/refund.js.map +1 -0
  29. package/dist/admin/api/stats.d.ts +40 -0
  30. package/dist/admin/api/stats.d.ts.map +1 -0
  31. package/dist/admin/api/stats.js +74 -0
  32. package/dist/admin/api/stats.js.map +1 -0
  33. package/dist/admin/components/AdminGuard.d.ts +40 -0
  34. package/dist/admin/components/AdminGuard.d.ts.map +1 -0
  35. package/dist/admin/components/AdminGuard.js +97 -0
  36. package/dist/admin/components/AdminGuard.js.map +1 -0
  37. package/dist/admin/components/AdminHeader.d.ts +18 -0
  38. package/dist/admin/components/AdminHeader.d.ts.map +1 -0
  39. package/dist/admin/components/AdminHeader.js +33 -0
  40. package/dist/admin/components/AdminHeader.js.map +1 -0
  41. package/dist/admin/components/AdminLayout.d.ts +50 -0
  42. package/dist/admin/components/AdminLayout.d.ts.map +1 -0
  43. package/dist/admin/components/AdminLayout.js +46 -0
  44. package/dist/admin/components/AdminLayout.js.map +1 -0
  45. package/dist/admin/components/AdminLoginForm.d.ts +18 -0
  46. package/dist/admin/components/AdminLoginForm.d.ts.map +1 -0
  47. package/dist/admin/components/AdminLoginForm.js +58 -0
  48. package/dist/admin/components/AdminLoginForm.js.map +1 -0
  49. package/dist/admin/components/AdminNav.d.ts +34 -0
  50. package/dist/admin/components/AdminNav.d.ts.map +1 -0
  51. package/dist/admin/components/AdminNav.js +61 -0
  52. package/dist/admin/components/AdminNav.js.map +1 -0
  53. package/dist/admin/components/InventoryEditor.d.ts +15 -0
  54. package/dist/admin/components/InventoryEditor.d.ts.map +1 -0
  55. package/dist/admin/components/InventoryEditor.js +83 -0
  56. package/dist/admin/components/InventoryEditor.js.map +1 -0
  57. package/dist/admin/components/LowStockAlert.d.ts +11 -0
  58. package/dist/admin/components/LowStockAlert.d.ts.map +1 -0
  59. package/dist/admin/components/LowStockAlert.js +35 -0
  60. package/dist/admin/components/LowStockAlert.js.map +1 -0
  61. package/dist/admin/components/OrderDetails.d.ts +14 -0
  62. package/dist/admin/components/OrderDetails.d.ts.map +1 -0
  63. package/dist/admin/components/OrderDetails.js +94 -0
  64. package/dist/admin/components/OrderDetails.js.map +1 -0
  65. package/dist/admin/components/OrderTable.d.ts +13 -0
  66. package/dist/admin/components/OrderTable.d.ts.map +1 -0
  67. package/dist/admin/components/OrderTable.js +89 -0
  68. package/dist/admin/components/OrderTable.js.map +1 -0
  69. package/dist/admin/components/ProductForm.d.ts +18 -0
  70. package/dist/admin/components/ProductForm.d.ts.map +1 -0
  71. package/dist/admin/components/ProductForm.js +127 -0
  72. package/dist/admin/components/ProductForm.js.map +1 -0
  73. package/dist/admin/components/ProductTable.d.ts +13 -0
  74. package/dist/admin/components/ProductTable.d.ts.map +1 -0
  75. package/dist/admin/components/ProductTable.js +81 -0
  76. package/dist/admin/components/ProductTable.js.map +1 -0
  77. package/dist/admin/components/RecentOrders.d.ts +11 -0
  78. package/dist/admin/components/RecentOrders.d.ts.map +1 -0
  79. package/dist/admin/components/RecentOrders.js +58 -0
  80. package/dist/admin/components/RecentOrders.js.map +1 -0
  81. package/dist/admin/components/RefundDialog.d.ts +17 -0
  82. package/dist/admin/components/RefundDialog.d.ts.map +1 -0
  83. package/dist/admin/components/RefundDialog.js +86 -0
  84. package/dist/admin/components/RefundDialog.js.map +1 -0
  85. package/dist/admin/components/StatsCards.d.ts +23 -0
  86. package/dist/admin/components/StatsCards.d.ts.map +1 -0
  87. package/dist/admin/components/StatsCards.js +82 -0
  88. package/dist/admin/components/StatsCards.js.map +1 -0
  89. package/dist/admin/components/StoreSettings.d.ts +14 -0
  90. package/dist/admin/components/StoreSettings.d.ts.map +1 -0
  91. package/dist/admin/components/StoreSettings.js +88 -0
  92. package/dist/admin/components/StoreSettings.js.map +1 -0
  93. package/dist/admin/components/index.d.ts +21 -0
  94. package/dist/admin/components/index.d.ts.map +1 -0
  95. package/dist/admin/components/index.js +57 -0
  96. package/dist/admin/components/index.js.map +1 -0
  97. package/dist/admin/config.d.ts +74 -0
  98. package/dist/admin/config.d.ts.map +1 -0
  99. package/dist/admin/config.js +229 -0
  100. package/dist/admin/config.js.map +1 -0
  101. package/dist/admin/hooks/index.d.ts +10 -0
  102. package/dist/admin/hooks/index.d.ts.map +1 -0
  103. package/dist/admin/hooks/index.js +17 -0
  104. package/dist/admin/hooks/index.js.map +1 -0
  105. package/dist/admin/hooks/useAdminOrders.d.ts +41 -0
  106. package/dist/admin/hooks/useAdminOrders.d.ts.map +1 -0
  107. package/dist/admin/hooks/useAdminOrders.js +191 -0
  108. package/dist/admin/hooks/useAdminOrders.js.map +1 -0
  109. package/dist/admin/hooks/useAdminProducts.d.ts +39 -0
  110. package/dist/admin/hooks/useAdminProducts.d.ts.map +1 -0
  111. package/dist/admin/hooks/useAdminProducts.js +235 -0
  112. package/dist/admin/hooks/useAdminProducts.js.map +1 -0
  113. package/dist/admin/hooks/useAdminStats.d.ts +50 -0
  114. package/dist/admin/hooks/useAdminStats.d.ts.map +1 -0
  115. package/dist/admin/hooks/useAdminStats.js +111 -0
  116. package/dist/admin/hooks/useAdminStats.js.map +1 -0
  117. package/dist/admin/index.d.ts +63 -0
  118. package/dist/admin/index.d.ts.map +1 -0
  119. package/dist/admin/index.js +148 -0
  120. package/dist/admin/index.js.map +1 -0
  121. package/dist/admin/server/admin-service.d.ts +130 -0
  122. package/dist/admin/server/admin-service.d.ts.map +1 -0
  123. package/dist/admin/server/admin-service.js +298 -0
  124. package/dist/admin/server/admin-service.js.map +1 -0
  125. package/dist/admin/server/index.d.ts +8 -0
  126. package/dist/admin/server/index.d.ts.map +1 -0
  127. package/dist/admin/server/index.js +25 -0
  128. package/dist/admin/server/index.js.map +1 -0
  129. package/dist/admin/types.d.ts +549 -0
  130. package/dist/admin/types.d.ts.map +1 -0
  131. package/dist/admin/types.js +11 -0
  132. package/dist/admin/types.js.map +1 -0
  133. package/dist/auth/api/auth.d.ts +54 -0
  134. package/dist/auth/api/auth.d.ts.map +1 -0
  135. package/dist/auth/api/auth.js +67 -0
  136. package/dist/auth/api/auth.js.map +1 -0
  137. package/dist/auth/api/forgot-password.d.ts +41 -0
  138. package/dist/auth/api/forgot-password.d.ts.map +1 -0
  139. package/dist/auth/api/forgot-password.js +68 -0
  140. package/dist/auth/api/forgot-password.js.map +1 -0
  141. package/dist/auth/api/index.d.ts +34 -0
  142. package/dist/auth/api/index.d.ts.map +1 -0
  143. package/dist/auth/api/index.js +52 -0
  144. package/dist/auth/api/index.js.map +1 -0
  145. package/dist/auth/api/register.d.ts +41 -0
  146. package/dist/auth/api/register.d.ts.map +1 -0
  147. package/dist/auth/api/register.js +93 -0
  148. package/dist/auth/api/register.js.map +1 -0
  149. package/dist/auth/api/resend-verification.d.ts +41 -0
  150. package/dist/auth/api/resend-verification.d.ts.map +1 -0
  151. package/dist/auth/api/resend-verification.js +71 -0
  152. package/dist/auth/api/resend-verification.js.map +1 -0
  153. package/dist/auth/api/reset-password.d.ts +67 -0
  154. package/dist/auth/api/reset-password.d.ts.map +1 -0
  155. package/dist/auth/api/reset-password.js +110 -0
  156. package/dist/auth/api/reset-password.js.map +1 -0
  157. package/dist/auth/api/verify-email.d.ts +47 -0
  158. package/dist/auth/api/verify-email.d.ts.map +1 -0
  159. package/dist/auth/api/verify-email.js +94 -0
  160. package/dist/auth/api/verify-email.js.map +1 -0
  161. package/dist/auth/components/AuthGuard.d.ts +52 -0
  162. package/dist/auth/components/AuthGuard.d.ts.map +1 -0
  163. package/dist/auth/components/AuthGuard.js +113 -0
  164. package/dist/auth/components/AuthGuard.js.map +1 -0
  165. package/dist/auth/components/ForgotPasswordForm.d.ts +15 -0
  166. package/dist/auth/components/ForgotPasswordForm.d.ts.map +1 -0
  167. package/dist/auth/components/ForgotPasswordForm.js +44 -0
  168. package/dist/auth/components/ForgotPasswordForm.js.map +1 -0
  169. package/dist/auth/components/ResetPasswordForm.d.ts +18 -0
  170. package/dist/auth/components/ResetPasswordForm.d.ts.map +1 -0
  171. package/dist/auth/components/ResetPasswordForm.js +88 -0
  172. package/dist/auth/components/ResetPasswordForm.js.map +1 -0
  173. package/dist/auth/components/SignInForm.d.ts +21 -0
  174. package/dist/auth/components/SignInForm.d.ts.map +1 -0
  175. package/dist/auth/components/SignInForm.js +63 -0
  176. package/dist/auth/components/SignInForm.js.map +1 -0
  177. package/dist/auth/components/SignUpForm.d.ts +18 -0
  178. package/dist/auth/components/SignUpForm.d.ts.map +1 -0
  179. package/dist/auth/components/SignUpForm.js +79 -0
  180. package/dist/auth/components/SignUpForm.js.map +1 -0
  181. package/dist/auth/components/UserMenu.d.ts +18 -0
  182. package/dist/auth/components/UserMenu.d.ts.map +1 -0
  183. package/dist/auth/components/UserMenu.js +75 -0
  184. package/dist/auth/components/UserMenu.js.map +1 -0
  185. package/dist/auth/components/VerifyEmailNotice.d.ts +20 -0
  186. package/dist/auth/components/VerifyEmailNotice.d.ts.map +1 -0
  187. package/dist/auth/components/VerifyEmailNotice.js +59 -0
  188. package/dist/auth/components/VerifyEmailNotice.js.map +1 -0
  189. package/dist/auth/components/index.d.ts +13 -0
  190. package/dist/auth/components/index.d.ts.map +1 -0
  191. package/dist/auth/components/index.js +24 -0
  192. package/dist/auth/components/index.js.map +1 -0
  193. package/dist/auth/config.d.ts +42 -0
  194. package/dist/auth/config.d.ts.map +1 -0
  195. package/dist/auth/config.js +174 -0
  196. package/dist/auth/config.js.map +1 -0
  197. package/dist/auth/hooks/index.d.ts +7 -0
  198. package/dist/auth/hooks/index.d.ts.map +1 -0
  199. package/dist/auth/hooks/index.js +11 -0
  200. package/dist/auth/hooks/index.js.map +1 -0
  201. package/dist/auth/index.d.ts +54 -0
  202. package/dist/auth/index.d.ts.map +1 -0
  203. package/dist/auth/index.js +88 -0
  204. package/dist/auth/index.js.map +1 -0
  205. package/dist/auth/server/customer-service.d.ts +138 -0
  206. package/dist/auth/server/customer-service.d.ts.map +1 -0
  207. package/dist/auth/server/customer-service.js +309 -0
  208. package/dist/auth/server/customer-service.js.map +1 -0
  209. package/dist/auth/server/email-sender.d.ts +64 -0
  210. package/dist/auth/server/email-sender.d.ts.map +1 -0
  211. package/dist/auth/server/email-sender.js +112 -0
  212. package/dist/auth/server/email-sender.js.map +1 -0
  213. package/dist/auth/server/index.d.ts +13 -0
  214. package/dist/auth/server/index.d.ts.map +1 -0
  215. package/dist/auth/server/index.js +48 -0
  216. package/dist/auth/server/index.js.map +1 -0
  217. package/dist/auth/server/password-reset-service.d.ts +86 -0
  218. package/dist/auth/server/password-reset-service.d.ts.map +1 -0
  219. package/dist/auth/server/password-reset-service.js +236 -0
  220. package/dist/auth/server/password-reset-service.js.map +1 -0
  221. package/dist/auth/server/password.d.ts +58 -0
  222. package/dist/auth/server/password.d.ts.map +1 -0
  223. package/dist/auth/server/password.js +94 -0
  224. package/dist/auth/server/password.js.map +1 -0
  225. package/dist/auth/server/verification-service.d.ts +87 -0
  226. package/dist/auth/server/verification-service.d.ts.map +1 -0
  227. package/dist/auth/server/verification-service.js +268 -0
  228. package/dist/auth/server/verification-service.js.map +1 -0
  229. package/dist/auth/types.d.ts +305 -0
  230. package/dist/auth/types.d.ts.map +1 -0
  231. package/dist/auth/types.js +8 -0
  232. package/dist/auth/types.js.map +1 -0
  233. package/dist/cart/CartProvider.d.ts +65 -0
  234. package/dist/cart/CartProvider.d.ts.map +1 -0
  235. package/dist/cart/CartProvider.js +101 -0
  236. package/dist/cart/CartProvider.js.map +1 -0
  237. package/dist/cart/components/AddToCartButton.d.ts +77 -0
  238. package/dist/cart/components/AddToCartButton.d.ts.map +1 -0
  239. package/dist/cart/components/AddToCartButton.js +124 -0
  240. package/dist/cart/components/AddToCartButton.js.map +1 -0
  241. package/dist/cart/components/CartDrawer.d.ts +71 -0
  242. package/dist/cart/components/CartDrawer.d.ts.map +1 -0
  243. package/dist/cart/components/CartDrawer.js +108 -0
  244. package/dist/cart/components/CartDrawer.js.map +1 -0
  245. package/dist/cart/components/CartIcon.d.ts +36 -0
  246. package/dist/cart/components/CartIcon.d.ts.map +1 -0
  247. package/dist/cart/components/CartIcon.js +70 -0
  248. package/dist/cart/components/CartIcon.js.map +1 -0
  249. package/dist/cart/components/CartItem.d.ts +52 -0
  250. package/dist/cart/components/CartItem.d.ts.map +1 -0
  251. package/dist/cart/components/CartItem.js +55 -0
  252. package/dist/cart/components/CartItem.js.map +1 -0
  253. package/dist/cart/components/CartSummary.d.ts +43 -0
  254. package/dist/cart/components/CartSummary.d.ts.map +1 -0
  255. package/dist/cart/components/CartSummary.js +58 -0
  256. package/dist/cart/components/CartSummary.js.map +1 -0
  257. package/dist/cart/components/QuantitySelector.d.ts +39 -0
  258. package/dist/cart/components/QuantitySelector.d.ts.map +1 -0
  259. package/dist/cart/components/QuantitySelector.js +87 -0
  260. package/dist/cart/components/QuantitySelector.js.map +1 -0
  261. package/dist/cart/components/index.d.ts +18 -0
  262. package/dist/cart/components/index.d.ts.map +1 -0
  263. package/dist/cart/components/index.js +21 -0
  264. package/dist/cart/components/index.js.map +1 -0
  265. package/dist/cart/index.d.ts +109 -0
  266. package/dist/cart/index.d.ts.map +1 -0
  267. package/dist/cart/index.js +129 -0
  268. package/dist/cart/index.js.map +1 -0
  269. package/dist/cart/store.d.ts +101 -0
  270. package/dist/cart/store.d.ts.map +1 -0
  271. package/dist/cart/store.js +207 -0
  272. package/dist/cart/store.js.map +1 -0
  273. package/dist/checkout/api/checkout.d.ts +31 -0
  274. package/dist/checkout/api/checkout.d.ts.map +1 -0
  275. package/dist/checkout/api/checkout.js +103 -0
  276. package/dist/checkout/api/checkout.js.map +1 -0
  277. package/dist/checkout/api/index.d.ts +8 -0
  278. package/dist/checkout/api/index.d.ts.map +1 -0
  279. package/dist/checkout/api/index.js +13 -0
  280. package/dist/checkout/api/index.js.map +1 -0
  281. package/dist/checkout/api/webhook.d.ts +30 -0
  282. package/dist/checkout/api/webhook.d.ts.map +1 -0
  283. package/dist/checkout/api/webhook.js +58 -0
  284. package/dist/checkout/api/webhook.js.map +1 -0
  285. package/dist/checkout/components/CheckoutButton.d.ts +44 -0
  286. package/dist/checkout/components/CheckoutButton.d.ts.map +1 -0
  287. package/dist/checkout/components/CheckoutButton.js +97 -0
  288. package/dist/checkout/components/CheckoutButton.js.map +1 -0
  289. package/dist/checkout/components/CheckoutSuccess.d.ts +29 -0
  290. package/dist/checkout/components/CheckoutSuccess.d.ts.map +1 -0
  291. package/dist/checkout/components/CheckoutSuccess.js +60 -0
  292. package/dist/checkout/components/CheckoutSuccess.js.map +1 -0
  293. package/dist/checkout/components/OrderSummary.d.ts +37 -0
  294. package/dist/checkout/components/OrderSummary.d.ts.map +1 -0
  295. package/dist/checkout/components/OrderSummary.js +70 -0
  296. package/dist/checkout/components/OrderSummary.js.map +1 -0
  297. package/dist/checkout/components/ShippingForm.d.ts +30 -0
  298. package/dist/checkout/components/ShippingForm.d.ts.map +1 -0
  299. package/dist/checkout/components/ShippingForm.js +125 -0
  300. package/dist/checkout/components/ShippingForm.js.map +1 -0
  301. package/dist/checkout/components/index.d.ts +10 -0
  302. package/dist/checkout/components/index.d.ts.map +1 -0
  303. package/dist/checkout/components/index.js +17 -0
  304. package/dist/checkout/components/index.js.map +1 -0
  305. package/dist/checkout/hooks/index.d.ts +7 -0
  306. package/dist/checkout/hooks/index.d.ts.map +1 -0
  307. package/dist/checkout/hooks/index.js +12 -0
  308. package/dist/checkout/hooks/index.js.map +1 -0
  309. package/dist/checkout/hooks/useCheckout.d.ts +61 -0
  310. package/dist/checkout/hooks/useCheckout.d.ts.map +1 -0
  311. package/dist/checkout/hooks/useCheckout.js +174 -0
  312. package/dist/checkout/hooks/useCheckout.js.map +1 -0
  313. package/dist/checkout/index.d.ts +111 -0
  314. package/dist/checkout/index.d.ts.map +1 -0
  315. package/dist/checkout/index.js +148 -0
  316. package/dist/checkout/index.js.map +1 -0
  317. package/dist/checkout/server/create-checkout-session.d.ts +69 -0
  318. package/dist/checkout/server/create-checkout-session.d.ts.map +1 -0
  319. package/dist/checkout/server/create-checkout-session.js +190 -0
  320. package/dist/checkout/server/create-checkout-session.js.map +1 -0
  321. package/dist/checkout/server/handle-webhook.d.ts +35 -0
  322. package/dist/checkout/server/handle-webhook.d.ts.map +1 -0
  323. package/dist/checkout/server/handle-webhook.js +279 -0
  324. package/dist/checkout/server/handle-webhook.js.map +1 -0
  325. package/dist/checkout/server/index.d.ts +10 -0
  326. package/dist/checkout/server/index.d.ts.map +1 -0
  327. package/dist/checkout/server/index.js +19 -0
  328. package/dist/checkout/server/index.js.map +1 -0
  329. package/dist/checkout/server/order-service.d.ts +43 -0
  330. package/dist/checkout/server/order-service.d.ts.map +1 -0
  331. package/dist/checkout/server/order-service.js +196 -0
  332. package/dist/checkout/server/order-service.js.map +1 -0
  333. package/dist/checkout/stripe/client.d.ts +72 -0
  334. package/dist/checkout/stripe/client.d.ts.map +1 -0
  335. package/dist/checkout/stripe/client.js +189 -0
  336. package/dist/checkout/stripe/client.js.map +1 -0
  337. package/dist/checkout/stripe/index.d.ts +7 -0
  338. package/dist/checkout/stripe/index.d.ts.map +1 -0
  339. package/dist/checkout/stripe/index.js +21 -0
  340. package/dist/checkout/stripe/index.js.map +1 -0
  341. package/dist/checkout/types.d.ts +263 -0
  342. package/dist/checkout/types.d.ts.map +1 -0
  343. package/dist/checkout/types.js +9 -0
  344. package/dist/checkout/types.js.map +1 -0
  345. package/dist/core/config.d.ts +296 -0
  346. package/dist/core/config.d.ts.map +1 -0
  347. package/dist/core/config.js +162 -0
  348. package/dist/core/config.js.map +1 -0
  349. package/dist/core/db/client.d.ts +69 -0
  350. package/dist/core/db/client.d.ts.map +1 -0
  351. package/dist/core/db/client.js +202 -0
  352. package/dist/core/db/client.js.map +1 -0
  353. package/dist/core/db/index.d.ts +11 -0
  354. package/dist/core/db/index.d.ts.map +1 -0
  355. package/dist/core/db/index.js +87 -0
  356. package/dist/core/db/index.js.map +1 -0
  357. package/dist/core/db/queries.d.ts +658 -0
  358. package/dist/core/db/queries.d.ts.map +1 -0
  359. package/dist/core/db/queries.js +735 -0
  360. package/dist/core/db/queries.js.map +1 -0
  361. package/dist/core/db/schema.d.ts +1628 -0
  362. package/dist/core/db/schema.d.ts.map +1 -0
  363. package/dist/core/db/schema.js +262 -0
  364. package/dist/core/db/schema.js.map +1 -0
  365. package/dist/core/index.d.ts +20 -0
  366. package/dist/core/index.d.ts.map +1 -0
  367. package/dist/core/index.js +71 -0
  368. package/dist/core/index.js.map +1 -0
  369. package/dist/core/server/index.d.ts +17 -0
  370. package/dist/core/server/index.d.ts.map +1 -0
  371. package/dist/core/server/index.js +68 -0
  372. package/dist/core/server/index.js.map +1 -0
  373. package/dist/core/types.d.ts +230 -0
  374. package/dist/core/types.d.ts.map +1 -0
  375. package/dist/core/types.js +9 -0
  376. package/dist/core/types.js.map +1 -0
  377. package/dist/core/utils.d.ts +153 -0
  378. package/dist/core/utils.d.ts.map +1 -0
  379. package/dist/core/utils.js +356 -0
  380. package/dist/core/utils.js.map +1 -0
  381. package/dist/emails/config.d.ts +42 -0
  382. package/dist/emails/config.d.ts.map +1 -0
  383. package/dist/emails/config.js +89 -0
  384. package/dist/emails/config.js.map +1 -0
  385. package/dist/emails/index.d.ts +85 -0
  386. package/dist/emails/index.d.ts.map +1 -0
  387. package/dist/emails/index.js +170 -0
  388. package/dist/emails/index.js.map +1 -0
  389. package/dist/emails/send/auth.d.ts +91 -0
  390. package/dist/emails/send/auth.d.ts.map +1 -0
  391. package/dist/emails/send/auth.js +132 -0
  392. package/dist/emails/send/auth.js.map +1 -0
  393. package/dist/emails/send/index.d.ts +10 -0
  394. package/dist/emails/send/index.d.ts.map +1 -0
  395. package/dist/emails/send/index.js +33 -0
  396. package/dist/emails/send/index.js.map +1 -0
  397. package/dist/emails/send/orders.d.ts +180 -0
  398. package/dist/emails/send/orders.d.ts.map +1 -0
  399. package/dist/emails/send/orders.js +259 -0
  400. package/dist/emails/send/orders.js.map +1 -0
  401. package/dist/emails/sender.d.ts +72 -0
  402. package/dist/emails/sender.d.ts.map +1 -0
  403. package/dist/emails/sender.js +118 -0
  404. package/dist/emails/sender.js.map +1 -0
  405. package/dist/emails/templates/base.d.ts +105 -0
  406. package/dist/emails/templates/base.d.ts.map +1 -0
  407. package/dist/emails/templates/base.js +291 -0
  408. package/dist/emails/templates/base.js.map +1 -0
  409. package/dist/emails/templates/email-verification.d.ts +28 -0
  410. package/dist/emails/templates/email-verification.d.ts.map +1 -0
  411. package/dist/emails/templates/email-verification.js +56 -0
  412. package/dist/emails/templates/email-verification.js.map +1 -0
  413. package/dist/emails/templates/index.d.ts +15 -0
  414. package/dist/emails/templates/index.d.ts.map +1 -0
  415. package/dist/emails/templates/index.js +58 -0
  416. package/dist/emails/templates/index.js.map +1 -0
  417. package/dist/emails/templates/order-cancelled.d.ts +30 -0
  418. package/dist/emails/templates/order-cancelled.d.ts.map +1 -0
  419. package/dist/emails/templates/order-cancelled.js +87 -0
  420. package/dist/emails/templates/order-cancelled.js.map +1 -0
  421. package/dist/emails/templates/order-confirmation.d.ts +36 -0
  422. package/dist/emails/templates/order-confirmation.d.ts.map +1 -0
  423. package/dist/emails/templates/order-confirmation.js +161 -0
  424. package/dist/emails/templates/order-confirmation.js.map +1 -0
  425. package/dist/emails/templates/order-delivered.d.ts +31 -0
  426. package/dist/emails/templates/order-delivered.d.ts.map +1 -0
  427. package/dist/emails/templates/order-delivered.js +95 -0
  428. package/dist/emails/templates/order-delivered.js.map +1 -0
  429. package/dist/emails/templates/order-shipped.d.ts +32 -0
  430. package/dist/emails/templates/order-shipped.d.ts.map +1 -0
  431. package/dist/emails/templates/order-shipped.js +87 -0
  432. package/dist/emails/templates/order-shipped.js.map +1 -0
  433. package/dist/emails/templates/password-reset.d.ts +27 -0
  434. package/dist/emails/templates/password-reset.d.ts.map +1 -0
  435. package/dist/emails/templates/password-reset.js +55 -0
  436. package/dist/emails/templates/password-reset.js.map +1 -0
  437. package/dist/emails/templates/refund-processed.d.ts +32 -0
  438. package/dist/emails/templates/refund-processed.d.ts.map +1 -0
  439. package/dist/emails/templates/refund-processed.js +96 -0
  440. package/dist/emails/templates/refund-processed.js.map +1 -0
  441. package/dist/emails/templates/welcome.d.ts +27 -0
  442. package/dist/emails/templates/welcome.d.ts.map +1 -0
  443. package/dist/emails/templates/welcome.js +56 -0
  444. package/dist/emails/templates/welcome.js.map +1 -0
  445. package/dist/emails/types.d.ts +202 -0
  446. package/dist/emails/types.d.ts.map +1 -0
  447. package/dist/emails/types.js +8 -0
  448. package/dist/emails/types.js.map +1 -0
  449. package/dist/emails/utils.d.ts +94 -0
  450. package/dist/emails/utils.d.ts.map +1 -0
  451. package/dist/emails/utils.js +229 -0
  452. package/dist/emails/utils.js.map +1 -0
  453. package/dist/index.d.ts +40 -0
  454. package/dist/index.d.ts.map +1 -0
  455. package/dist/index.js +225 -0
  456. package/dist/index.js.map +1 -0
  457. package/dist/products/api/categories.d.ts +29 -0
  458. package/dist/products/api/categories.d.ts.map +1 -0
  459. package/dist/products/api/categories.js +49 -0
  460. package/dist/products/api/categories.js.map +1 -0
  461. package/dist/products/api/index.d.ts +24 -0
  462. package/dist/products/api/index.d.ts.map +1 -0
  463. package/dist/products/api/index.js +30 -0
  464. package/dist/products/api/index.js.map +1 -0
  465. package/dist/products/api/product.d.ts +36 -0
  466. package/dist/products/api/product.d.ts.map +1 -0
  467. package/dist/products/api/product.js +70 -0
  468. package/dist/products/api/product.js.map +1 -0
  469. package/dist/products/api/products.d.ts +41 -0
  470. package/dist/products/api/products.d.ts.map +1 -0
  471. package/dist/products/api/products.js +102 -0
  472. package/dist/products/api/products.js.map +1 -0
  473. package/dist/products/components/CategoryNav.d.ts +51 -0
  474. package/dist/products/components/CategoryNav.d.ts.map +1 -0
  475. package/dist/products/components/CategoryNav.js +115 -0
  476. package/dist/products/components/CategoryNav.js.map +1 -0
  477. package/dist/products/components/ProductBreadcrumb.d.ts +52 -0
  478. package/dist/products/components/ProductBreadcrumb.d.ts.map +1 -0
  479. package/dist/products/components/ProductBreadcrumb.js +78 -0
  480. package/dist/products/components/ProductBreadcrumb.js.map +1 -0
  481. package/dist/products/components/ProductCard.d.ts +54 -0
  482. package/dist/products/components/ProductCard.d.ts.map +1 -0
  483. package/dist/products/components/ProductCard.js +65 -0
  484. package/dist/products/components/ProductCard.js.map +1 -0
  485. package/dist/products/components/ProductDetails.d.ts +63 -0
  486. package/dist/products/components/ProductDetails.d.ts.map +1 -0
  487. package/dist/products/components/ProductDetails.js +105 -0
  488. package/dist/products/components/ProductDetails.js.map +1 -0
  489. package/dist/products/components/ProductFilters.d.ts +70 -0
  490. package/dist/products/components/ProductFilters.d.ts.map +1 -0
  491. package/dist/products/components/ProductFilters.js +127 -0
  492. package/dist/products/components/ProductFilters.js.map +1 -0
  493. package/dist/products/components/ProductGallery.d.ts +37 -0
  494. package/dist/products/components/ProductGallery.d.ts.map +1 -0
  495. package/dist/products/components/ProductGallery.js +80 -0
  496. package/dist/products/components/ProductGallery.js.map +1 -0
  497. package/dist/products/components/ProductGrid.d.ts +50 -0
  498. package/dist/products/components/ProductGrid.d.ts.map +1 -0
  499. package/dist/products/components/ProductGrid.js +83 -0
  500. package/dist/products/components/ProductGrid.js.map +1 -0
  501. package/dist/products/components/ProductSearch.d.ts +43 -0
  502. package/dist/products/components/ProductSearch.d.ts.map +1 -0
  503. package/dist/products/components/ProductSearch.js +99 -0
  504. package/dist/products/components/ProductSearch.js.map +1 -0
  505. package/dist/products/components/ProductSort.d.ts +43 -0
  506. package/dist/products/components/ProductSort.d.ts.map +1 -0
  507. package/dist/products/components/ProductSort.js +61 -0
  508. package/dist/products/components/ProductSort.js.map +1 -0
  509. package/dist/products/components/VariantSelector.d.ts +43 -0
  510. package/dist/products/components/VariantSelector.d.ts.map +1 -0
  511. package/dist/products/components/VariantSelector.js +147 -0
  512. package/dist/products/components/VariantSelector.js.map +1 -0
  513. package/dist/products/components/index.d.ts +26 -0
  514. package/dist/products/components/index.d.ts.map +1 -0
  515. package/dist/products/components/index.js +32 -0
  516. package/dist/products/components/index.js.map +1 -0
  517. package/dist/products/hooks/index.d.ts +14 -0
  518. package/dist/products/hooks/index.d.ts.map +1 -0
  519. package/dist/products/hooks/index.js +17 -0
  520. package/dist/products/hooks/index.js.map +1 -0
  521. package/dist/products/hooks/useCategories.d.ts +56 -0
  522. package/dist/products/hooks/useCategories.d.ts.map +1 -0
  523. package/dist/products/hooks/useCategories.js +126 -0
  524. package/dist/products/hooks/useCategories.js.map +1 -0
  525. package/dist/products/hooks/useProduct.d.ts +44 -0
  526. package/dist/products/hooks/useProduct.d.ts.map +1 -0
  527. package/dist/products/hooks/useProduct.js +86 -0
  528. package/dist/products/hooks/useProduct.js.map +1 -0
  529. package/dist/products/hooks/useProductAttributes.d.ts +59 -0
  530. package/dist/products/hooks/useProductAttributes.d.ts.map +1 -0
  531. package/dist/products/hooks/useProductAttributes.js +148 -0
  532. package/dist/products/hooks/useProductAttributes.js.map +1 -0
  533. package/dist/products/hooks/useProducts.d.ts +67 -0
  534. package/dist/products/hooks/useProducts.d.ts.map +1 -0
  535. package/dist/products/hooks/useProducts.js +132 -0
  536. package/dist/products/hooks/useProducts.js.map +1 -0
  537. package/dist/products/index.d.ts +94 -0
  538. package/dist/products/index.d.ts.map +1 -0
  539. package/dist/products/index.js +123 -0
  540. package/dist/products/index.js.map +1 -0
  541. package/dist/theme/ThemeProvider.d.ts +70 -0
  542. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  543. package/dist/theme/ThemeProvider.js +77 -0
  544. package/dist/theme/ThemeProvider.js.map +1 -0
  545. package/dist/theme/colors.d.ts +148 -0
  546. package/dist/theme/colors.d.ts.map +1 -0
  547. package/dist/theme/colors.js +219 -0
  548. package/dist/theme/colors.js.map +1 -0
  549. package/dist/theme/defaults.d.ts +212 -0
  550. package/dist/theme/defaults.d.ts.map +1 -0
  551. package/dist/theme/defaults.js +278 -0
  552. package/dist/theme/defaults.js.map +1 -0
  553. package/dist/theme/fonts.d.ts +59 -0
  554. package/dist/theme/fonts.d.ts.map +1 -0
  555. package/dist/theme/fonts.js +202 -0
  556. package/dist/theme/fonts.js.map +1 -0
  557. package/dist/theme/generator.d.ts +50 -0
  558. package/dist/theme/generator.d.ts.map +1 -0
  559. package/dist/theme/generator.js +322 -0
  560. package/dist/theme/generator.js.map +1 -0
  561. package/dist/theme/hooks.d.ts +110 -0
  562. package/dist/theme/hooks.d.ts.map +1 -0
  563. package/dist/theme/hooks.js +106 -0
  564. package/dist/theme/hooks.js.map +1 -0
  565. package/dist/theme/index.d.ts +37 -0
  566. package/dist/theme/index.d.ts.map +1 -0
  567. package/dist/theme/index.js +85 -0
  568. package/dist/theme/index.js.map +1 -0
  569. package/package.json +1 -1
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ /**
3
+ * @rovela/sdk/checkout/server/create-checkout-session
4
+ *
5
+ * Creates a Stripe Checkout session using Direct Charges.
6
+ * The payment is processed ON the connected account, not the platform.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createCheckoutSession = createCheckoutSession;
10
+ exports.deserializeItemsFromMetadata = deserializeItemsFromMetadata;
11
+ exports.getCheckoutSession = getCheckoutSession;
12
+ const client_1 = require("../stripe/client");
13
+ // =============================================================================
14
+ // Main Function
15
+ // =============================================================================
16
+ /**
17
+ * Create a Stripe Checkout session for Direct Charges.
18
+ *
19
+ * This creates the checkout session ON the connected account (Direct Charge),
20
+ * meaning the payment shows up in the connected account's dashboard, and
21
+ * the application fee is transferred to the platform.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const session = await createCheckoutSession({
26
+ * items: [
27
+ * { name: 'T-Shirt', price: 2999, quantity: 1 }
28
+ * ],
29
+ * customerEmail: 'customer@example.com',
30
+ * successUrl: 'https://store.example.com/success?session_id={CHECKOUT_SESSION_ID}',
31
+ * cancelUrl: 'https://store.example.com/cart',
32
+ * })
33
+ *
34
+ * // Redirect customer to Stripe Checkout
35
+ * redirect(session.url)
36
+ * ```
37
+ */
38
+ async function createCheckoutSession(request, options = {}) {
39
+ const stripe = (0, client_1.getStripe)();
40
+ const connectedAccountId = (0, client_1.getConnectedAccountId)();
41
+ const currency = (0, client_1.getStoreCurrency)();
42
+ const { collectShippingAddress = true, collectPhoneNumber = false, allowPromotionCodes = false, automaticTax = false, applicationFeeAmount, } = options;
43
+ // Validate request
44
+ if (!request.items || request.items.length === 0) {
45
+ throw new Error('No items provided for checkout');
46
+ }
47
+ if (!request.successUrl || !request.cancelUrl) {
48
+ throw new Error('Success and cancel URLs are required');
49
+ }
50
+ // Calculate subtotal and application fee
51
+ const subtotal = request.items.reduce((sum, item) => sum + item.price * item.quantity, 0);
52
+ const appFee = applicationFeeAmount ?? (0, client_1.calculateApplicationFee)(subtotal);
53
+ // Build line items for Stripe
54
+ const lineItems = request.items.map((item) => ({
55
+ price_data: {
56
+ currency,
57
+ product_data: {
58
+ name: item.name,
59
+ description: item.description,
60
+ images: item.image ? [item.image] : undefined,
61
+ metadata: {
62
+ productId: item.productId || '',
63
+ variantId: item.variantId || '',
64
+ },
65
+ },
66
+ unit_amount: item.price,
67
+ },
68
+ quantity: item.quantity,
69
+ }));
70
+ // Build session parameters
71
+ const sessionParams = {
72
+ mode: 'payment',
73
+ line_items: lineItems,
74
+ payment_intent_data: {
75
+ // Application fee goes to the platform (Rovela)
76
+ application_fee_amount: appFee,
77
+ // Metadata for the payment intent
78
+ metadata: {
79
+ rovela_platform: 'true',
80
+ ...request.metadata,
81
+ },
82
+ },
83
+ success_url: request.successUrl,
84
+ cancel_url: request.cancelUrl,
85
+ // Store metadata on the session
86
+ metadata: {
87
+ // Store items as JSON for order creation in webhook
88
+ items: JSON.stringify(serializeItemsForMetadata(request.items)),
89
+ // Store customer ID for authenticated checkout
90
+ ...(request.customerId && { customerId: request.customerId }),
91
+ ...request.metadata,
92
+ },
93
+ };
94
+ // Add customer email if provided
95
+ if (request.customerEmail) {
96
+ sessionParams.customer_email = request.customerEmail;
97
+ }
98
+ // Collect shipping address if enabled
99
+ if (collectShippingAddress) {
100
+ sessionParams.shipping_address_collection = {
101
+ allowed_countries: (0, client_1.getAllowedShippingCountries)(),
102
+ };
103
+ }
104
+ // Collect phone number if enabled
105
+ if (collectPhoneNumber) {
106
+ sessionParams.phone_number_collection = {
107
+ enabled: true,
108
+ };
109
+ }
110
+ // Allow promotion codes if enabled
111
+ if (allowPromotionCodes) {
112
+ sessionParams.allow_promotion_codes = true;
113
+ }
114
+ // Enable automatic tax if configured
115
+ if (automaticTax) {
116
+ sessionParams.automatic_tax = {
117
+ enabled: true,
118
+ };
119
+ }
120
+ // Create the session ON the connected account (Direct Charge)
121
+ const session = await stripe.checkout.sessions.create(sessionParams, {
122
+ stripeAccount: connectedAccountId,
123
+ });
124
+ if (!session.url) {
125
+ throw new Error('Failed to create checkout session: no URL returned');
126
+ }
127
+ return {
128
+ sessionId: session.id,
129
+ url: session.url,
130
+ };
131
+ }
132
+ // =============================================================================
133
+ // Helpers
134
+ // =============================================================================
135
+ /**
136
+ * Serialize items for storing in Stripe metadata.
137
+ * Metadata has a 500 character limit per value.
138
+ */
139
+ function serializeItemsForMetadata(items) {
140
+ return items.map((item) => ({
141
+ pid: item.productId,
142
+ vid: item.variantId,
143
+ n: item.name.substring(0, 100), // Limit name length
144
+ p: item.price,
145
+ q: item.quantity,
146
+ }));
147
+ }
148
+ /**
149
+ * Deserialize items from Stripe metadata.
150
+ */
151
+ function deserializeItemsFromMetadata(json) {
152
+ try {
153
+ const items = JSON.parse(json);
154
+ return items.map((item) => ({
155
+ productId: item.pid,
156
+ variantId: item.vid,
157
+ name: item.n,
158
+ price: item.p,
159
+ quantity: item.q,
160
+ }));
161
+ }
162
+ catch {
163
+ console.error('[Checkout] Failed to parse items from metadata:', json);
164
+ return [];
165
+ }
166
+ }
167
+ // =============================================================================
168
+ // Session Retrieval
169
+ // =============================================================================
170
+ /**
171
+ * Retrieve a checkout session by ID.
172
+ * Useful for the success page to get order details.
173
+ */
174
+ async function getCheckoutSession(sessionId) {
175
+ const stripe = (0, client_1.getStripe)();
176
+ const connectedAccountId = (0, client_1.getConnectedAccountId)();
177
+ try {
178
+ const session = await stripe.checkout.sessions.retrieve(sessionId, {
179
+ expand: ['line_items', 'payment_intent', 'customer'],
180
+ }, {
181
+ stripeAccount: connectedAccountId,
182
+ });
183
+ return session;
184
+ }
185
+ catch (error) {
186
+ console.error('[Checkout] Failed to retrieve session:', error);
187
+ return null;
188
+ }
189
+ }
190
+ //# sourceMappingURL=create-checkout-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-checkout-session.js","sourceRoot":"","sources":["../../../src/checkout/server/create-checkout-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @rovela/sdk/checkout/server/handle-webhook
3
+ *
4
+ * Stripe webhook handler for processing payment events.
5
+ * Handles events from both the platform account and connected accounts.
6
+ */
7
+ import type { WebhookResult } from '../types';
8
+ /**
9
+ * Handle incoming Stripe webhook events.
10
+ *
11
+ * This function:
12
+ * 1. Verifies the webhook signature (tries both account and connect secrets)
13
+ * 2. Parses the event
14
+ * 3. Routes to the appropriate handler
15
+ * 4. Returns the result
16
+ *
17
+ * Supports dual webhook endpoints:
18
+ * - STRIPE_WEBHOOK_SECRET: For platform account events (account.updated)
19
+ * - STRIPE_CONNECT_WEBHOOK_SECRET: For connected account events (checkout.*, payment_intent.*, charge.*)
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * // In app/api/webhooks/stripe/route.ts
24
+ * export async function POST(request: Request) {
25
+ * const payload = await request.text()
26
+ * const signature = request.headers.get('stripe-signature')!
27
+ *
28
+ * const result = await handleStripeWebhook(payload, signature)
29
+ *
30
+ * return Response.json(result)
31
+ * }
32
+ * ```
33
+ */
34
+ export declare function handleStripeWebhook(payload: string | Buffer, signature: string): Promise<WebhookResult>;
35
+ //# sourceMappingURL=handle-webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-webhook.d.ts","sourceRoot":"","sources":["../../../src/checkout/server/handle-webhook.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAc7C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAmDxB"}
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ /**
3
+ * @rovela/sdk/checkout/server/handle-webhook
4
+ *
5
+ * Stripe webhook handler for processing payment events.
6
+ * Handles events from both the platform account and connected accounts.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.handleStripeWebhook = handleStripeWebhook;
10
+ const client_1 = require("../stripe/client");
11
+ const order_service_1 = require("./order-service");
12
+ const emails_1 = require("../../emails");
13
+ // =============================================================================
14
+ // Main Webhook Handler
15
+ // =============================================================================
16
+ /**
17
+ * Handle incoming Stripe webhook events.
18
+ *
19
+ * This function:
20
+ * 1. Verifies the webhook signature (tries both account and connect secrets)
21
+ * 2. Parses the event
22
+ * 3. Routes to the appropriate handler
23
+ * 4. Returns the result
24
+ *
25
+ * Supports dual webhook endpoints:
26
+ * - STRIPE_WEBHOOK_SECRET: For platform account events (account.updated)
27
+ * - STRIPE_CONNECT_WEBHOOK_SECRET: For connected account events (checkout.*, payment_intent.*, charge.*)
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * // In app/api/webhooks/stripe/route.ts
32
+ * export async function POST(request: Request) {
33
+ * const payload = await request.text()
34
+ * const signature = request.headers.get('stripe-signature')!
35
+ *
36
+ * const result = await handleStripeWebhook(payload, signature)
37
+ *
38
+ * return Response.json(result)
39
+ * }
40
+ * ```
41
+ */
42
+ async function handleStripeWebhook(payload, signature) {
43
+ const stripe = (0, client_1.getStripe)();
44
+ const webhookSecrets = (0, client_1.getAllWebhookSecrets)();
45
+ // Try to verify with each webhook secret
46
+ // This handles both account webhooks and connect webhooks
47
+ let event = null;
48
+ let lastError = null;
49
+ for (const secret of webhookSecrets) {
50
+ try {
51
+ event = stripe.webhooks.constructEvent(payload, signature, secret);
52
+ // Successfully verified with this secret
53
+ break;
54
+ }
55
+ catch (err) {
56
+ lastError = err instanceof Error ? err : new Error('Unknown error');
57
+ // Try next secret
58
+ continue;
59
+ }
60
+ }
61
+ if (!event) {
62
+ const message = lastError?.message || 'Unknown signature error';
63
+ console.error('[Webhook] Signature verification failed with all secrets:', message);
64
+ return {
65
+ received: false,
66
+ error: `Webhook signature verification failed: ${message}`,
67
+ };
68
+ }
69
+ // Log the event for debugging
70
+ console.log('[Webhook] Received event:', event.type, 'from account:', event.account || 'platform');
71
+ // Route to appropriate handler
72
+ try {
73
+ const result = await routeWebhookEvent(event);
74
+ return result;
75
+ }
76
+ catch (err) {
77
+ const message = err instanceof Error ? err.message : 'Unknown error';
78
+ console.error('[Webhook] Error processing event:', event.type, message);
79
+ return {
80
+ received: true,
81
+ event: event.type,
82
+ error: message,
83
+ };
84
+ }
85
+ }
86
+ // =============================================================================
87
+ // Event Routing
88
+ // =============================================================================
89
+ /**
90
+ * Route webhook event to the appropriate handler.
91
+ */
92
+ async function routeWebhookEvent(event) {
93
+ switch (event.type) {
94
+ // Checkout Events
95
+ case 'checkout.session.completed':
96
+ return handleCheckoutSessionCompleted(event.data.object);
97
+ case 'checkout.session.expired':
98
+ return handleCheckoutSessionExpired(event.data.object);
99
+ // Payment Events
100
+ case 'payment_intent.succeeded':
101
+ return handlePaymentIntentSucceeded(event.data.object);
102
+ case 'payment_intent.payment_failed':
103
+ return handlePaymentIntentFailed(event.data.object);
104
+ // Refund Events
105
+ case 'charge.refunded':
106
+ return handleChargeRefunded(event.data.object);
107
+ // Account Events (for monitoring)
108
+ case 'account.updated':
109
+ return handleAccountUpdated(event.data.object);
110
+ // Unhandled events - acknowledge receipt
111
+ default:
112
+ console.log('[Webhook] Unhandled event type:', event.type);
113
+ return { received: true, event: event.type };
114
+ }
115
+ }
116
+ // =============================================================================
117
+ // Checkout Event Handlers
118
+ // =============================================================================
119
+ /**
120
+ * Handle successful checkout session completion.
121
+ * This is the primary event for creating orders.
122
+ */
123
+ async function handleCheckoutSessionCompleted(session) {
124
+ console.log('[Webhook] Checkout completed:', session.id);
125
+ // Only process completed payment sessions
126
+ if (session.payment_status !== 'paid') {
127
+ console.log('[Webhook] Skipping - payment status:', session.payment_status);
128
+ return { received: true, event: 'checkout.session.completed' };
129
+ }
130
+ // Extract order parameters from session
131
+ const orderParams = (0, order_service_1.extractOrderParamsFromSession)(session);
132
+ // Create the order
133
+ const { orderId, isNew } = await (0, order_service_1.createOrderFromCheckout)(orderParams);
134
+ console.log('[Webhook] Order', isNew ? 'created' : 'already exists', orderId);
135
+ // Send order confirmation email (fire-and-forget, don't block webhook response)
136
+ if (isNew && orderParams.email) {
137
+ sendOrderConfirmationEmail(orderId, orderParams, session);
138
+ }
139
+ return {
140
+ received: true,
141
+ event: 'checkout.session.completed',
142
+ orderId,
143
+ };
144
+ }
145
+ /**
146
+ * Handle expired checkout session.
147
+ * Used for cleanup and analytics.
148
+ */
149
+ async function handleCheckoutSessionExpired(session) {
150
+ console.log('[Webhook] Checkout expired:', session.id);
151
+ // Could be used for:
152
+ // - Cart abandonment tracking
153
+ // - Sending recovery emails
154
+ // - Analytics
155
+ return { received: true, event: 'checkout.session.expired' };
156
+ }
157
+ // =============================================================================
158
+ // Payment Event Handlers
159
+ // =============================================================================
160
+ /**
161
+ * Handle successful payment intent.
162
+ * This is a backup to checkout.session.completed.
163
+ */
164
+ async function handlePaymentIntentSucceeded(paymentIntent) {
165
+ console.log('[Webhook] Payment succeeded:', paymentIntent.id);
166
+ // Payment intent success is already handled by checkout.session.completed
167
+ // This is here as a backup and for logging
168
+ return { received: true, event: 'payment_intent.succeeded' };
169
+ }
170
+ /**
171
+ * Handle failed payment intent.
172
+ * Used for logging and potential notification.
173
+ */
174
+ async function handlePaymentIntentFailed(paymentIntent) {
175
+ console.log('[Webhook] Payment failed:', paymentIntent.id, paymentIntent.last_payment_error?.message);
176
+ // Could be used for:
177
+ // - Alerting store owner
178
+ // - Customer notification
179
+ // - Analytics
180
+ return { received: true, event: 'payment_intent.payment_failed' };
181
+ }
182
+ // =============================================================================
183
+ // Refund Event Handlers
184
+ // =============================================================================
185
+ /**
186
+ * Handle charge refund.
187
+ * Updates order status when a refund is processed.
188
+ */
189
+ async function handleChargeRefunded(charge) {
190
+ console.log('[Webhook] Charge refunded:', charge.id);
191
+ const paymentIntentId = typeof charge.payment_intent === 'string'
192
+ ? charge.payment_intent
193
+ : charge.payment_intent?.id;
194
+ if (paymentIntentId) {
195
+ await (0, order_service_1.handleRefund)(paymentIntentId, charge.amount_refunded, charge.amount);
196
+ }
197
+ return { received: true, event: 'charge.refunded' };
198
+ }
199
+ // =============================================================================
200
+ // Account Event Handlers
201
+ // =============================================================================
202
+ /**
203
+ * Handle connected account updates.
204
+ * Used to monitor account status.
205
+ */
206
+ async function handleAccountUpdated(account) {
207
+ console.log('[Webhook] Account updated:', account.id);
208
+ console.log(' - Charges enabled:', account.charges_enabled);
209
+ console.log(' - Payouts enabled:', account.payouts_enabled);
210
+ console.log(' - Details submitted:', account.details_submitted);
211
+ // Could be used for:
212
+ // - Updating store status when account is verified
213
+ // - Notifying platform when account has issues
214
+ // - Blocking checkout if account is disabled
215
+ return { received: true, event: 'account.updated' };
216
+ }
217
+ /**
218
+ * Send order confirmation email after checkout completion.
219
+ * This is fire-and-forget - errors are logged but don't block the webhook.
220
+ */
221
+ function sendOrderConfirmationEmail(orderId, params, session) {
222
+ // Extract customer name from session or email
223
+ const customerName = session.customer_details?.name ||
224
+ params.email.split('@')[0] ||
225
+ 'Customer';
226
+ // Convert order items to email format
227
+ const items = params.items.map((item) => ({
228
+ name: item.name,
229
+ quantity: item.quantity,
230
+ price: (0, emails_1.formatPrice)(item.price), // Convert cents to formatted price
231
+ imageUrl: item.image, // Note: CheckoutLineItem uses 'image' not 'imageUrl'
232
+ }));
233
+ // Convert shipping address to email format
234
+ const shippingAddress = {
235
+ name: session.customer_details?.name || customerName,
236
+ line1: params.shippingAddress.line1,
237
+ line2: params.shippingAddress.line2,
238
+ city: params.shippingAddress.city,
239
+ state: params.shippingAddress.state,
240
+ postalCode: params.shippingAddress.postalCode,
241
+ country: params.shippingAddress.country,
242
+ };
243
+ // Build order tracking URL (store can customize this)
244
+ const storeUrl = process.env.NEXT_PUBLIC_APP_URL || '';
245
+ const orderTrackingUrl = `${storeUrl}/account/orders/${orderId}`;
246
+ (0, emails_1.sendOrderConfirmationAsync)({
247
+ to: params.email,
248
+ customerName,
249
+ orderNumber: (0, emails_1.formatOrderNumber)(orderId),
250
+ orderDate: (0, emails_1.formatDate)(new Date()),
251
+ paymentStatus: 'Paid',
252
+ items,
253
+ subtotal: (0, emails_1.formatPrice)(params.subtotal),
254
+ shippingCost: params.shipping > 0 ? (0, emails_1.formatPrice)(params.shipping) : 'Free',
255
+ tax: (0, emails_1.formatPrice)(params.tax),
256
+ total: (0, emails_1.formatPrice)(params.total),
257
+ shippingAddress,
258
+ orderTrackingUrl,
259
+ });
260
+ console.log('[Webhook] Order confirmation email queued for:', params.email);
261
+ }
262
+ /**
263
+ * Send refund processed email.
264
+ * This is fire-and-forget - errors are logged but don't block the webhook.
265
+ */
266
+ function sendRefundEmail(email, customerName, orderNumber, refundAmount, paymentMethod) {
267
+ (0, emails_1.sendRefundProcessedAsync)({
268
+ to: email,
269
+ customerName,
270
+ orderNumber: (0, emails_1.formatOrderNumber)(orderNumber),
271
+ refundAmount: (0, emails_1.formatPrice)(refundAmount),
272
+ refundDate: (0, emails_1.formatDate)(new Date()),
273
+ paymentMethod,
274
+ estimatedArrival: '5-10 business days',
275
+ businessDays: '5-10',
276
+ });
277
+ console.log('[Webhook] Refund email queued for:', email);
278
+ }
279
+ //# sourceMappingURL=handle-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-webhook.js","sourceRoot":"","sources":["../../../src/checkout/server/handle-webhook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @rovela/sdk/checkout/server
3
+ *
4
+ * Server-side checkout functions
5
+ */
6
+ export { createCheckoutSession, getCheckoutSession, deserializeItemsFromMetadata, } from './create-checkout-session';
7
+ export type { CreateCheckoutSessionOptions } from './create-checkout-session';
8
+ export { handleStripeWebhook } from './handle-webhook';
9
+ export { createOrderFromCheckout, extractOrderParamsFromSession, handleRefund, } from './order-service';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checkout/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAA;AAElC,YAAY,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,YAAY,GACb,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * @rovela/sdk/checkout/server
4
+ *
5
+ * Server-side checkout functions
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.handleRefund = exports.extractOrderParamsFromSession = exports.createOrderFromCheckout = exports.handleStripeWebhook = exports.deserializeItemsFromMetadata = exports.getCheckoutSession = exports.createCheckoutSession = void 0;
9
+ var create_checkout_session_1 = require("./create-checkout-session");
10
+ Object.defineProperty(exports, "createCheckoutSession", { enumerable: true, get: function () { return create_checkout_session_1.createCheckoutSession; } });
11
+ Object.defineProperty(exports, "getCheckoutSession", { enumerable: true, get: function () { return create_checkout_session_1.getCheckoutSession; } });
12
+ Object.defineProperty(exports, "deserializeItemsFromMetadata", { enumerable: true, get: function () { return create_checkout_session_1.deserializeItemsFromMetadata; } });
13
+ var handle_webhook_1 = require("./handle-webhook");
14
+ Object.defineProperty(exports, "handleStripeWebhook", { enumerable: true, get: function () { return handle_webhook_1.handleStripeWebhook; } });
15
+ var order_service_1 = require("./order-service");
16
+ Object.defineProperty(exports, "createOrderFromCheckout", { enumerable: true, get: function () { return order_service_1.createOrderFromCheckout; } });
17
+ Object.defineProperty(exports, "extractOrderParamsFromSession", { enumerable: true, get: function () { return order_service_1.extractOrderParamsFromSession; } });
18
+ Object.defineProperty(exports, "handleRefund", { enumerable: true, get: function () { return order_service_1.handleRefund; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checkout/server/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qEAIkC;AAHhC,gIAAA,qBAAqB,OAAA;AACrB,6HAAA,kBAAkB,OAAA;AAClB,uIAAA,4BAA4B,OAAA;AAK9B,mDAAsD;AAA7C,qHAAA,mBAAmB,OAAA;AAE5B,iDAIwB;AAHtB,wHAAA,uBAAuB,OAAA;AACvB,8HAAA,6BAA6B,OAAA;AAC7B,6GAAA,YAAY,OAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @rovela/sdk/checkout/server/order-service
3
+ *
4
+ * Order creation and management from Stripe Checkout sessions.
5
+ */
6
+ import type Stripe from 'stripe';
7
+ import type { CreateOrderParams } from '../types';
8
+ /**
9
+ * Create an order from a completed Stripe Checkout session.
10
+ *
11
+ * This function:
12
+ * 1. Checks for existing order (idempotency)
13
+ * 2. Creates the order record
14
+ * 3. Creates order items
15
+ * 4. Returns the created order
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // In webhook handler
20
+ * const order = await createOrderFromCheckout({
21
+ * sessionId: session.id,
22
+ * email: session.customer_details?.email || '',
23
+ * items: JSON.parse(session.metadata?.items || '[]'),
24
+ * subtotal: session.amount_subtotal || 0,
25
+ * // ... other params
26
+ * })
27
+ * ```
28
+ */
29
+ export declare function createOrderFromCheckout(params: CreateOrderParams): Promise<{
30
+ orderId: string;
31
+ isNew: boolean;
32
+ }>;
33
+ /**
34
+ * Extract order parameters from a Stripe Checkout Session.
35
+ * Used to convert Stripe's session object to our CreateOrderParams.
36
+ */
37
+ export declare function extractOrderParamsFromSession(session: Stripe.Checkout.Session): CreateOrderParams;
38
+ /**
39
+ * Handle a refund event from Stripe.
40
+ * Updates the order status to 'refunded'.
41
+ */
42
+ export declare function handleRefund(paymentIntentId: string, refundAmount: number, totalAmount: number): Promise<void>;
43
+ //# sourceMappingURL=order-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-service.d.ts","sourceRoot":"","sources":["../../../src/checkout/server/order-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAShC,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,UAAU,CAAA;AAOnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CA8C9C;AAMD;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,GAC/B,iBAAiB,CA2CnB;AAMD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAuBf"}